.****************************************************************************** .* Copyright (c) 2000-2014 Ericsson Telecom AB .* All rights reserved. This program and the accompanying materials .* are made available under the terms of the Eclipse Public License v1.0 .* which accompanies this distribution, and is available at .* http://www.eclipse.org/legal/epl-v10.html .******************************************************************************/ :text. :lang eng. .* EDML webpage: http://cpi.ericsson.se/dwaxe/ .* EDML2PDF converter: http://dwaxe.ericsson.se/x2pdf .* EDML user guide: http://www.lmc.ericsson.se/~lmcmarg/isit/edml_ug.html .* Document header information :docname.Test Description :docno.12/152 91-CRL 113 200/5 Uen :rev.A :date.2015-04-27 :prep.ETH/XZR Jeno Balasko :appr.ETH/XZ (Gyula Koos) :checked.ETHGRY :title.Test description of the TTCN-3 Semantic Analyzer: Unknown Object :contents level=2. .*---------------------------------------------------------------------* :h1.Introduction .*---------------------------------------------------------------------* .*---------------------------------------------------------------------* :h2.Revision history .*---------------------------------------------------------------------* :xmp tab=2. REV DATE PREPARED CHANGE __________________________________________________ PA1 2005-02-01 ETHESI New document for TITAN R6 PA2 2005-02-19 ETHESI Updated after review A 2005-03-18 ETHESI Approved B 2005-12-16 EKRISZA Updates for TITAN R6D C 2006-07-31 EKRISZA Updates for TITAN R6E D 2007-03-06 EJNOSZA Updates for TITAN R7A (expected error messages) E 2009-06-11 EKRISZA Name correction F 2010-07-02 EKRISZA corrected version information. G 2011-05-05 EKRISZA added new tests H 2011-10-10 EKRISZA corrected version information. A 2011-12-12 EKRISZA Updated for release A 2012-06-27 EFERKOV Updated for release A 2013-01-17 EKRIPND Updated for release :exmp. .*---------------------------------------------------------------------* :h2.Purpose .*---------------------------------------------------------------------* The purpose of this Test Description is to define and describe the function test activity for the Semantic Analyser functionality of the TTCN-3 compiler: :nl.SA-1/x: Unknown Object. :p.The specification of the test cases can be found in this document. .*---------------------------------------------------------------------* :h1.Test environment .*---------------------------------------------------------------------* .*---------------------------------------------------------------------* :h2.Hardware .*---------------------------------------------------------------------* No specific hardware requirement. .*---------------------------------------------------------------------* :h2.Software .*---------------------------------------------------------------------* Tests shall be carried out on the following platforms: :list. :li D='1.'.Solaris 8 (Sun OS 5.8) (gcc 3.0.4) :li D='2.'.SUSE Linux Enterprise server 8 (2.4.19-4GB) (gcc 3.2) :li D='3.'.CYGWIN_NT-5.0 (Cygwin DLL: 1.5.12) on Windows 2000 (gcc 3.3.3) :elist. .*---------------------------------------------------------------------* :h2.Configuration .*---------------------------------------------------------------------* The test environment had been setup in CVS. The tester program is stored in: :nl.TTCNv3/function_test/Tools/SAtester.pl :nl.Test cases are stored with extension .script in the directory: :nl.TTCNv3/function_test/Semantic_Analyser/ .*---------------------------------------------------------------------* :h2.Installation .*---------------------------------------------------------------------* Install proper TITAN binaries on the used platforms and make sure that your environment settings are correct: :list. :li D='1.'.TTCN3_DIR is set :li D='2.'.$TTCN3_DIR/bin is added to the PATH variable :li D='3.'.$TTCN3_DIR/lib is added to the LD_LIBRARY_PATH variable :li D='4.'.Perl 5.6.0 or higher is available on the platform :li D='5.'.Create a symlink to your Perl binary into the directory where the test cases are stored: :nl.ln -s perl :elist. .*---------------------------------------------------------------------* :h2.Test Tools .*---------------------------------------------------------------------* A tester program had been written in Perl especially for the Semantic Analyser tests. For the list of command line parameters, type 'SAtester.pl -help', for the complete documentation, type 'SAtester.pl -doc'. :p.Test cases are specified in the Test Description documents in EDML format. The tester program parses these files and generates the TTCN-3/ASN.1 modules, then calls the compiler to compile them. The result printout is then matched against different patterns to be able to set the verdict. Test cases contain not only the source modules, but the patterns as well. :p.The tester program allows one-by-one execution of test cases and batched execution as well. :p.NOTE: the tester program requires Perl 5.6.0 or higher. .*---------------------------------------------------------------------* :h2.Test scope .*---------------------------------------------------------------------* Ref [1]: SA-1/x: Unknown object :nl.Explanation: all unknown objects shall be detected by SA. .*---------------------------------------------------------------------* :h2.Test strategy .*---------------------------------------------------------------------* Test cases are based on TTCN-3 BNF according to the followings: :list. :li D='1.'.For each 'basic' definition a complete coverage is done (e.g. for expressions, assignments, etc.). 'Basic' means that the definition is used in several places. :li D='2.'.For each definition a complete coverage is done, except for basic definitions, in which case only 1-2 examples are covered, not the whole basic definition. This is to avoid testing all possible subcases for all possible places it may appear. :nl.NOTE: a complete coverage means that all occurances are tested where the specific definition may occur. This is however not complete. Only one occurance is tested for each construct. :li D='3.'.Test case names are contsructed following the path in the BNF in TTCN-3 and following the possible notations/subtyping in ASN.1. :elist. .*---------------------------------------------------------------------* :h2.Status .*---------------------------------------------------------------------* The following structures are not covered: :list. :li D='-'.sub-structures that causes parse error due to limited support of that part of the language (e.g. interleave construct) :elist. .*---------------------------------------------------------------------* :h1.Test cases .*---------------------------------------------------------------------* .*---------------------------------------------------------------------* :h2.Unknown objects .*---------------------------------------------------------------------* .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordDef: ArrayDef .*---------------------------------------------------------------------* :xmp tab=0. RecordDef: ArrayDef> module ModuleA { // NOTE: not yet supported type record Type_record { integer field1, integer field2[666-Nonexi] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\berror\b.+?not.+?supported (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordDef: ReferencedType .*---------------------------------------------------------------------* :xmp tab=0. RecordDef: ReferencedType> module ModuleA { type record Type_record { integer field1, Nonexi field2 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordDef: ReferencedType->GlobalModuleId->LocalDef .*---------------------------------------------------------------------* :xmp tab=0. RecordDef: ReferencedType->GlobalModuleId->LocalDef> module ModuleA { type record Type_record { integer field1, // NOTE: treated as a local definition Nonexi.MyType field4 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordDef: ReferencedType->GlobalModuleId->ModuleId .*---------------------------------------------------------------------* :xmp tab=0. RecordDef: ReferencedType->GlobalModuleId->ModuleId> module ModuleA { type record Type_record { integer field1, // NOTE: treated as a module reference because of the objid value Nonexi.objid {0 4 0}.MyType field4 } } (?im)\berror\b.+?no.+?module.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordDef: ReferencedType->GlobalModuleId->Definition .*---------------------------------------------------------------------* :xmp tab=0. RecordDef: ReferencedType->GlobalModuleId->Definition> module ModuleA { type record Type_record { integer field1, ModuleA.Nonexi field6 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordDef: ReferencedType->Field reference .*---------------------------------------------------------------------* :xmp tab=0. RecordDef: ReferencedType->Field reference> module ModuleA { type record Type_record1 { boolean field1 } type record Type_record2 { integer field1, Type_record1.Nonexi field2 } } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordDef: ReferencedType->GlobalModuleId->ObjectIdentifierValue .*---------------------------------------------------------------------* :xmp tab=0. RecordDef: ReferencedType->GlobalModuleId->ObjectIdentifierValue> module ModuleA { type boolean MyType; type record Type_record { integer field1, // NOTE: modules are identified by name only yet ModuleA.objid {0 4 Nonexi}.MyType field5 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordDef: SubTypeSpec->AllowedValues .*---------------------------------------------------------------------* :xmp tab=0. RecordDef: SubTypeSpec->AllowedValues> module ModuleA { type record Type_record { integer field1, integer field7 (3,4,Nonexi) } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordDef: SubTypeSpec->StringLength .*---------------------------------------------------------------------* :xmp tab=0. RecordDef: SubTypeSpec->StringLength> module ModuleA { type record Type_record { integer field1, // TR 623: length restriction of charstrings charstring field8 length(666-Nonexi07) } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->UnionDef: ArrayDef .*---------------------------------------------------------------------* :xmp tab=0. UnionDef: ArrayDef> module ModuleA { // NOTE: not yet supported type union Type_union { integer field1, integer field2[666-Nonexi] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?not.+?supported (?is)\berror: :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->UnionDef: ReferencedType .*---------------------------------------------------------------------* :xmp tab=0. UnionDef: ReferencedType> module ModuleA { type union Type_union { integer field1, Nonexi field2 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->UnionDef: ReferencedType->GlobalModuleId->LocalDef .*---------------------------------------------------------------------* :xmp tab=0. UnionDef: ReferencedType->GlobalModuleId->LocalDef> module ModuleA { type union Type_union { integer field1, // NOTE: treated as a local definition Nonexi.MyType field4 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->UnionDef: ReferencedType->GlobalModuleId->ModuleId .*---------------------------------------------------------------------* :xmp tab=0. UnionDef: ReferencedType->GlobalModuleId->ModuleId> module ModuleA { type union Type_union { integer field1, // NOTE: treated as a module reference because of the objid value Nonexi.objid {0 4 0}.MyType field4 } } (?im)\berror\b.+?no.+?module.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->UnionDef: ReferencedType->GlobalModuleId->Definition .*---------------------------------------------------------------------* :xmp tab=0. UnionDef: ReferencedType->GlobalModuleId->Definition> module ModuleA { type union Type_union { integer field1, ModuleA.Nonexi field6 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->UnionDef: ReferencedType->Field reference .*---------------------------------------------------------------------* :xmp tab=0. UnionDef: ReferencedType->Field reference> module ModuleA { type union Type_union1 { boolean field1 } type union Type_union2 { integer field1, Type_union1.Nonexi field2 } } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->UnionDef: ReferencedType->GlobalModuleId->ObjectIdentifierValue .*---------------------------------------------------------------------* :xmp tab=0. UnionDef: ReferencedType->GlobalModuleId->ObjectIdentifierValue> module ModuleA { type verdicttype MyType; type union Type_union { integer field1, // NOTE: modules are identified by name only yet ModuleA.objid {0 4 Nonexi}.MyType field5 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->UnionDef: SubTypeSpec->AllowedValues .*---------------------------------------------------------------------* :xmp tab=0. UnionDef: SubTypeSpec->AllowedValues> module ModuleA { type union Type_union { integer field1, integer field7 (3,4,Nonexi) } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->UnionDef: SubTypeSpec->StringLength .*---------------------------------------------------------------------* :xmp tab=0. UnionDef: SubTypeSpec->StringLength> module ModuleA { type union Type_union { integer field1, // TR 623: length restriction of charstrings charstring field8 length(666-Nonexi07) } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetDef: ArrayDef .*---------------------------------------------------------------------* :xmp tab=0. SetDef: ArrayDef> module ModuleA { // NOTE: not yet supported type set Type_set { integer field1, integer field2[666-Nonexi] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?not.+?supported (?is)\berror: :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetDef: ReferencedType .*---------------------------------------------------------------------* :xmp tab=0. SetDef: ReferencedType> module ModuleA { type set Type_set { integer field1, Nonexi field2 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetDef: ReferencedType->GlobalModuleId->LocalDef .*---------------------------------------------------------------------* :xmp tab=0. SetDef: ReferencedType->GlobalModuleId->LocalDef> module ModuleA { type set Type_set { integer field1, // NOTE: treated as a local definition Nonexi.MyType field4 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetDef: ReferencedType->GlobalModuleId->ModuleId .*---------------------------------------------------------------------* :xmp tab=0. SetDef: ReferencedType->GlobalModuleId->ModuleId> module ModuleA { type set Type_set { integer field1, // NOTE: treated as a module reference because of the objid value Nonexi.objid {0 4 0}.MyType field4 } } (?im)\berror\b.+?no.+?module.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetDef: ReferencedType->GlobalModuleId->Definition .*---------------------------------------------------------------------* :xmp tab=0. SetDef: ReferencedType->GlobalModuleId->Definition> module ModuleA { type set Type_set { integer field1, ModuleA.Nonexi field6 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetDef: ReferencedType->Field reference .*---------------------------------------------------------------------* :xmp tab=0. SetDef: ReferencedType->Field reference> module ModuleA { type set Type_set1 { boolean field1 } type set Type_set2 { integer field1, Type_set1.Nonexi field2 } } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetDef: ReferencedType->GlobalModuleId->ObjectIdentifierValue .*---------------------------------------------------------------------* :xmp tab=0. SetDef: ReferencedType->GlobalModuleId->ObjectIdentifierValue> module ModuleA { type boolean MyType; type set Type_set { integer field1, // NOTE: modules are identified by name only yet ModuleA.objid {0 4 Nonexi}.MyType field5 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetDef: SubTypeSpec->AllowedValues .*---------------------------------------------------------------------* :xmp tab=0. SetDef: SubTypeSpec->AllowedValues> module ModuleA { type set Type_set { integer field1, integer field7 (3,4,Nonexi) } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetDef: SubTypeSpec->StringLength .*---------------------------------------------------------------------* :xmp tab=0. SetDef: SubTypeSpec->StringLength> module ModuleA { type set Type_set { integer field1, // TR 623: length restriction of charstrings charstring field8 length(666-Nonexi07) } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordOfDef: ReferencedType->GlobalModuleId->LocalDef .*---------------------------------------------------------------------* :xmp tab=0. RecordOfDef: ReferencedType->GlobalModuleId->LocalDef> module ModuleA { type record of Nonexi MyType2; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordOfDef: ReferencedType->GlobalModuleId->ModuleId .*---------------------------------------------------------------------* :xmp tab=0. RecordOfDef: ReferencedType->GlobalModuleId->ModuleId> module ModuleA { type record of Nonexi.MyType MyType2; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordOfDef: ReferencedType->GlobalModuleId->Definition .*---------------------------------------------------------------------* :xmp tab=0. RecordOfDef: ReferencedType->GlobalModuleId->Definition> module ModuleA { type record of ModuleA.Nonexi MyType2; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordOfDef: ReferencedType->Field reference .*---------------------------------------------------------------------* :xmp tab=0. RecordOfDef: ReferencedType->Field reference> module ModuleA { type record MyType_record { boolean field1 } type record of MyType_record.Nonexi MyType2; } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordOfDef: ReferencedType->GlobalModuleId->ObjectIdentifierValue .*---------------------------------------------------------------------* :xmp tab=0. RecordOfDef: ReferencedType->GlobalModuleId->ObjectIdentifierValue> module ModuleA { type boolean MyType1; type record of ModuleA.objid {0 4 Nonexi}.MyType1 MyType2; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordOfDef: AllowedValues .*---------------------------------------------------------------------* :xmp tab=0. RecordOfDef: AllowedValues> module ModuleA { type record of integer MyType6 (666-Nonexi); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordOfDef: StringLength1 .*---------------------------------------------------------------------* :xmp tab=0. RecordOfDef: StringLength1> module ModuleA { // StringLength type record length(0..666-Nonexi) of integer MyType1; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->RecordOfDef: StringLength2 .*---------------------------------------------------------------------* :xmp tab=0. RecordOfDef: StringLength2> module ModuleA { // TR 623: length restriction of charstrings type record of charstring MyType7 length(0..666-Nonexi); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetOfDef: ReferencedType->GlobalModuleId->LocalDef .*---------------------------------------------------------------------* :xmp tab=0. SetOfDef: ReferencedType->GlobalModuleId->LocalDef> module ModuleA { type set of Nonexi MyType2; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetOfDef: ReferencedType->GlobalModuleId->ModuleId .*---------------------------------------------------------------------* :xmp tab=0. SetOfDef: ReferencedType->GlobalModuleId->ModuleId> module ModuleA { type set of Nonexi.MyType MyType2; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetOfDef: ReferencedType->GlobalModuleId->Definition .*---------------------------------------------------------------------* :xmp tab=0. SetOfDef: ReferencedType->GlobalModuleId->Definition> module ModuleA { type set of ModuleA.Nonexi MyType2; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetOfDef: ReferencedType->Field reference .*---------------------------------------------------------------------* :xmp tab=0. SetOfDef: ReferencedType->Field reference> module ModuleA { type record MyType_record { boolean field1 } type set of MyType_record.Nonexi MyType2; } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetOfDef: ReferencedType->GlobalModuleId->ObjectIdentifierValue .*---------------------------------------------------------------------* :xmp tab=0. SetOfDef: ReferencedType->GlobalModuleId->ObjectIdentifierValue> module ModuleA { type float MyType1; type set of ModuleA.objid {0 4 Nonexi}.MyType1 MyType2; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetOfDef: AllowedValues .*---------------------------------------------------------------------* :xmp tab=0. SetOfDef: AllowedValues> module ModuleA { type set of integer MyType6 (666-Nonexi); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetOfDef: StringLength1 .*---------------------------------------------------------------------* :xmp tab=0. SetOfDef: StringLength1> module ModuleA { // StringLength type record length(0..666-Nonexi) of integer MyType1; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->SetOfDef: StringLength2 .*---------------------------------------------------------------------* :xmp tab=0. SetOfDef: StringLength2> module ModuleA { // TR 623: length restriction of charstrings type set of charstring MyType7 length(0..666-Nonexi); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Record->Module definition part .*---------------------------------------------------------------------* :xmp tab=0. Field References: Record->Module definition part> module ModuleA { type record MyType_record { boolean field1 optional, boolean field2 optional } const MyType_record MyConst_record := { field1 := false, field2 := true, nonexi := 666 } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Record->In component definition .*---------------------------------------------------------------------* :xmp tab=0. Field References: Record->In component definition> module ModuleA { type record MyType_record { boolean field1 optional, boolean field2 optional } type component MyComp { var MyType_record MyConst_record := { field1 := false, field2 := true, nonexi := 666 } } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Record->In statement block .*---------------------------------------------------------------------* :xmp tab=0. Field References: Record->In statement block> module ModuleA { type record MyType_record { boolean field1 optional, boolean field2 optional } function MyFunc1() { var MyType_record MyWar_record := { field1 := false, field2 := true, nonexi := 666 } } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Record->In control part .*---------------------------------------------------------------------* :xmp tab=0. Field References: Record->In control part> module ModuleA { type record MyType_record { boolean field1 optional, boolean field2 optional } control { var MyType_record MyWar_record := { field1 := false, field2 := true, nonexi := 666 } } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Set->Module definition part .*---------------------------------------------------------------------* :xmp tab=0. Field References: Set->Module definition part> module ModuleA { type set MyType_set { boolean field1 optional, boolean field2 optional } const MyType_set MyConst_set := { field1 := false, field2 := true, nonexi := 666 } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Set->In component definition .*---------------------------------------------------------------------* :xmp tab=0. Field References: Set->In component definition> module ModuleA { type set MyType_set { boolean field1 optional, boolean field2 optional } type component MyComp { var MyType_set MyConst_set := { field1 := false, field2 := true, nonexi := 666 } } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Set->In statement block .*---------------------------------------------------------------------* :xmp tab=0. Field References: Set->In statement block> module ModuleA { type set MyType_set { boolean field1 optional, boolean field2 optional } function MyFunc1() { var MyType_set MyWar_set := { field1 := false, field2 := true, nonexi := 666 } } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Set->In control part .*---------------------------------------------------------------------* :xmp tab=0. Field References: Set->In control part> module ModuleA { type set MyType_set { boolean field1 optional, boolean field2 optional } control { var MyType_set MyWar_set := { field1 := false, field2 := true, nonexi := 666 } } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Union->Module definition part .*---------------------------------------------------------------------* :xmp tab=0. Field References: Union->Module definition part> module ModuleA { type union MyType_union { boolean field1, boolean field2 } const MyType_union MyConst_union := { nonexi := 666 } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Union->In component definition .*---------------------------------------------------------------------* :xmp tab=0. Field References: Union->In component definition> module ModuleA { type union MyType_union { boolean field1, boolean field2 } type component MyComp { var MyType_union MyConst_union := { nonexi := 666 } } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Union->In statement block .*---------------------------------------------------------------------* :xmp tab=0. Field References: Union->In statement block> module ModuleA { type union MyType_union { boolean field1, boolean field2 } function MyFunc1() { var MyType_union MyWar_union := { nonexi := 666 } } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Union->In control part .*---------------------------------------------------------------------* :xmp tab=0. Field References: Union->In control part> module ModuleA { type union MyType_union { boolean field1, boolean field2 } control { var MyType_union MyWar_union := { nonexi := 666 } } } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Enumerated->Module definition part .*---------------------------------------------------------------------* :xmp tab=0. Field References: Enumerated->Module definition part> module ModuleA { type enumerated MyType_enumerated { Doom(0), Doom2(1) } const MyType_enumerated MyConst_enumerated := nonexi; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Enumerated->In component definition .*---------------------------------------------------------------------* :xmp tab=0. Field References: Enumerated->In component definition> module ModuleA { type enumerated MyType_enumerated { Doom(0), Doom2(1) } type component MyComp { var MyType_enumerated MyConst_enumerated := nonexi; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Enumerated->In statement block .*---------------------------------------------------------------------* :xmp tab=0. Field References: Enumerated->In statement block> module ModuleA { type enumerated MyType_enumerated { Doom(0), Doom2(1) } function MyFunc1() { var MyType_enumerated MyConst_enumerated := nonexi; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->Field References: Enumerated->In control part .*---------------------------------------------------------------------* :xmp tab=0. Field References: Enumerated->In control part> module ModuleA { type enumerated MyType_enumerated { Doom(0), Doom2(1) } control { var MyType_enumerated MyConst_enumerated := nonexi; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->PortDef: PortDefAttribs->MessageAttribs->Type .*---------------------------------------------------------------------* :xmp tab=0. PortDef: PortDefAttribs->MessageAttribs->Type> module ModuleA { // TR 624: reporting errors in typelists type port MyPort1 message { inout Nonexi01, Nonexi02 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->PortDef: PortDefAttribs->ProcedureAttribs .*---------------------------------------------------------------------* :xmp tab=0. PortDef: PortDefAttribs->ProcedureAttribs> module ModuleA { // TR 624: reporting errors in typelists type port MyPort1 procedure { inout Nonexi01, Nonexi02 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->PortDef: PortDefAttribs->MixedAttribs .*---------------------------------------------------------------------* :xmp tab=0. PortDef: PortDefAttribs->MixedAttribs> module ModuleA { // TR 621: limitation on mixed ports should be mentioned in user guide type port MyPort1 mixed { inout Nonexi01, Nonexi02 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: PortInstance->PortType .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: PortInstance->PortType> module ModuleA { type port MyPortType message { inout integer } type component MyComp1 { port Nonexi MyPort } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: PortInstance->PortType->ArrayDef: 1 Dimensional .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: PortInstance->PortType->ArrayDef: 1 Dimensional> module ModuleA { type port MyPortType message { inout integer } // TR 625: consistent checking of array dimensions type component MyComp5 { port MyPortType MyPort[200-Nonexi] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: PortInstance->PortType->ArrayDef: 4 Dimensional .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: PortInstance->PortType->ArrayDef: 4 Dimensional> module ModuleA { type port MyPortType message { inout integer } // TR 625: consistent checking of array dimensions type component MyComp5 { port MyPortType MyPort[11][666][17+666][200-Nonexi] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: VarInstance->VarType .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: VarInstance->VarType> module ModuleA { type component MyComp7 { var Nonexi07 MyVar } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: VarInstance->ArrayDef: 1 Dimensional .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: VarInstance->ArrayDef: 1 Dimensional> module ModuleA { // TR 608: More than one error message is shown for a situation type component MyComp11 { var integer MyVar[200-Nonexi] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: VarInstance->ArrayDef: 4 Dimensional .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: VarInstance->ArrayDef: 4 Dimensional> module ModuleA { // TR 608: More than one error message is shown for a situation type component MyComp12 { var integer MyVar[11][666][17+666][200-Nonexi12] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: VarInstance->VarInitialValue .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: VarInstance->VarInitialValue> module ModuleA { type component MyComp13 { var integer MyVar := 1+2+3+Nonexi13; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: TimerInstance: 1 Dimensional .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: TimerInstance: 1 Dimensional> module ModuleA { type component MyComp14 { timer MyTimer[666-Nonexi14] := { 1.0, 2.0, 3.0, 4.0 } } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: TimerInstance: 4 Dimensional .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: TimerInstance: 4 Dimensional> module ModuleA { type component MyComp14 { timer MyTimer[1][1][1][666-Nonexi14] := {{{ { 1.0, 2.0, 3.0, 4.0, -, -, 1.0 } }}} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: ConstDef->TypeDef .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: ConstDef->TypeDef> module ModuleA { type component MyComp17 { const Nonexi17 MyConst := 666; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: ConstDef->Value .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: ConstDef->Value> module ModuleA { type component MyComp17 { const integer MyConst := 666-Nonexi18; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: ConstDef: 1 Dimensional .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: ConstDef: 1 Dimensional> module ModuleA { // TR 608: More than one error message is shown for a situation type component MyComp18 { const integer MyConst[666-Nonexi19] := {1,2,3,4,666-18}; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: ConstDef: 4 Dimensional .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: ConstDef: 4 Dimensional> module ModuleA { // TR 608: More than one error message is shown for a situation type component MyComp18 { const integer MyConst[1][1][1][666-Nonexi19] := {{{ {1,2,3,4,666-18} }}}; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: Array index ranges: PortArray (upper bound) .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: Array index ranges: PortArray (upper bound)> module ModuleA { type port MyPortType message { inout integer } type component MyComp20 { port MyPortType MyPort[10][200+3..3+Nonexi23][2..11] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: Array index ranges: PortArray (lower bound) .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: Array index ranges: PortArray (lower bound)> module ModuleA { type port MyPortType message { inout integer } type component MyComp20 { port MyPortType MyPort[10][Nonexi12+3..3+5][2..11] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: Array index ranges: TimerArray (upper bound) .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: Array index ranges: TimerArray (upper bound)> module ModuleA { type component MyComp21 { timer MyTimer[0..16][4..8][666..Nonexi24] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: Array index ranges: TimerArray (lower bound) .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: Array index ranges: TimerArray (lower bound)> module ModuleA { type component MyComp21 { timer MyTimer[0..16][4..8][Nonexi24..666] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: Array index ranges: VarArray (upper bound) .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: Array index ranges: VarArray (upper bound)> module ModuleA { // TR 608: More than one error message is shown for a situation type component MyComp21 { var integer MyVar[0..16][4..8][666..Nonexi24] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: Array index ranges: VarArray (lower bound) .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: Array index ranges: VarArray (lower bound)> module ModuleA { // TR 608: More than one error message is shown for a situation type component MyComp21 { var integer MyVar[0..16][4..8][Nonexi24..666] } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: Array index ranges: ConstArray (upper bound) .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: Array index ranges: ConstArray (upper bound)> module ModuleA { // TR 608: More than one error message is shown for a situation type component MyComp21 { const integer MyConst[0..Nonexi24][0..0][1] := {{{10}}} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TypeDef->ComponentDef: Array index ranges: ConstArray (lower bound) .*---------------------------------------------------------------------* :xmp tab=0. ComponentDef: Array index ranges: ConstArray (lower bound)> module ModuleA { type component MyComp21 { const integer MyConst[Nonexi24..666][0..0][1] := {{{10}}} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Integer .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type integer Type_integer_subtyped (-9000, 100, Nonexi01); type integer Type_integer_root; type Type_integer_root Type_integer_subtypedroot (-100, 0, Nonexi02, 9, -89); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Float .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type float Type_float_subtyped (-9000.0, 100.0, Nonexi01); type float Type_float_root; type Type_float_root Type_float_subtypedroot (-100.0, 0.0, Nonexi02, 9.0, -89.0 + 11.1); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Boolean .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type boolean Type_boolean_subtyped (false, Nonexi01); type boolean Type_boolean_root; type Type_boolean_root Type_boolean_subtypedroot (false, Nonexi02, true); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Objid .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type objid Type_objid_subtypedroot1 (objid {0 4 0}, Nonexi); type objid Type_objid_subtypedroot2 (objid {0 4 0}, objid {Nonexi 4 0}); type objid Type_objid_root; type Type_objid_root Type_objid_subtypedroot3 (objid {0 4 0}, Nonexi); type Type_objid_root Type_objid_subtypedroot4 (objid {0 4 0}, objid {Nonexi 4 0}); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Verdicttype .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type verdicttype Type_verdicttype_subtyped (error, Nonexi11, fail); type verdicttype Type_verdicttype_root; type Type_verdicttype_root Type_verdicttype_subtypedroot (error, Nonexi10, fail); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Bitstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type bitstring Type_bitstring_subtyped ('0011'B & '1100'B, '1'B & Nonexi13, '1111'B); type bitstring Type_bitstring_root; type Type_bitstring_root Type_bitstring_subtypedroot ('0011'B & '1100'B, '1'B & Nonexi13, '1111'B); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Hexstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { // TR 655: strange parse error message // type hexstring Type_hexstring_subtyped (''ABDC'H, Nonexi14 & 'A0'H, '0AAA'H); type hexstring Type_hexstring_subtyped ('ABDC'H, Nonexi14 & 'A0'H, '0AAA'H); type hexstring Type_hexstring_root; type Type_hexstring_root Type_hexstring_subtypedroot ('ABDC'H, '00'H & Nonexi14, '0AAA'H); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Octetstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type octetstring Type_octetstring_subtyped ('0011'O, Nonexi17, '1111'O); type octetstring Type_octetstring_root; type Type_octetstring_root Type_octetstring_subtypedroot ('0011'O, Nonexi16, '1111'O); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Charstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type charstring Type_charstring_subtyped ("0011", Nonexi19, "Halflife2"); type charstring Type_charstring_root; type Type_charstring_root Type_charstring_subtypedroot ("0011", Nonexi18, "Halflife2"); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Universal charstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type universal charstring Type_universal_charstring_subtyped ("0011", Nonexi21, "Halflife2"); type universal charstring Type_universal_charstring_root; // TR 605: subtyping not supported for types and it stops code generation type Type_universal_charstring_root Type_universal_charstring_subtypedroot ("0011", Nonexi20, "Halflife2"); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Record .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type record Type_record_root { integer field1 optional }; type Type_record_root Type_record_subtypedroot ( { field1 := 10 }, { field1 := Nonexi22 } ); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Record of .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type record of integer Type_recordof_root; type Type_recordof_root Type_recordof_subtypedroot ( { 1,2,3}, Nonexi23, {3,4,Nonexi24} ); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Set .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type set Type_set_root { integer field1 optional }; type Type_set_root Type_set_subtypedroot ( { field1 := 10 }, { field1 := Nonexi22 } ); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Set of .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type set of integer Type_setof_root; type Type_setof_root Type_setof_subtypedroot ( { 1,2,3}, Nonexi23, {3,4,Nonexi24} ); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Enumerated .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type enumerated Type_enumerated_root { Doom1, Doom2, Doom3 }; type Type_enumerated_root Type_enumerated_subtypedroot ( Doom3, Nonexi28 ); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Union .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type union Type_union_root { integer field1, integer field2 }; type Type_union_root Type_union_subtypedroot ( { field1 := 10 }, Nonexi29 ); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, list of values: Anytype .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type anytype MyType ( 10, 11.0, true, false ); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?not.+?supported (?is)\berror: :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, range: Integer .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type integer Type_integer_subtyped2 (-1976, 10 .. Nonexi02); type integer Type_integer_root; type Type_integer_root Type_integer_subtypedroot (-1976 .. Nonexi03); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, range: Float .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type float Type_float_subtyped2 (-1976.0, 10.0..Nonexi05); type float Type_float_root; type Type_float_root Type_float_subtypedroot (-1976.0 .. Nonexi06); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, range: Charstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type charstring Type_charstring_root; type Type_charstring_root Type_charstring_subtypedroot (Nonexi07.."c"); type charstring Type_charstring_subtyped (Nonexi08.."c"); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, range: Universal charstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type universal charstring Type_universal_charstring_root; type Type_universal_charstring_root Type_universal_charstring_subtypedroot ("a"..Nonexi09); type universal charstring Type_universal_charstring_subtyped ("a"..Nonexi10); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, length: Bitstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type bitstring Type_bitstring_root; type Type_bitstring_root Type_bitstring_subtypedroot length(1..Nonexi01); type bitstring Type_bitstring_subtyped length(Nonexi02..10); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, length: Hexstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type hexstring Type_hexstring_root; type Type_hexstring_root Type_hexstring_subtypedroot length(1..Nonexi03); type hexstring Type_hexstring_subtyped length(Nonexi04..10); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, length: Octetstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type octetstring Type_octetstring_root; type Type_octetstring_root Type_octetstring_subtypedroot length(1..Nonexi05); type octetstring Type_octetstring_subtyped length(Nonexi06..10); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, length: Charstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type charstring Type_charstring_root; type Type_charstring_root Type_charstring_subtypedroot length(1..Nonexi07); type charstring Type_charstring_subtyped length(Nonexi08..10); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, length: Universal charstring .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type universal charstring Type_universal_charstring_root; type Type_universal_charstring_root Type_universal_charstring_subtypedroot length(1..Nonexi09); type universal charstring Type_universal_charstring_subtyped length(Nonexi10..10); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, length: Record of .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type record of integer Type_recordof_root; type Type_recordof_root Type_recordof_subtypedroot length(1..Nonexi11); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Subtypes, length: Set of .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type set of integer Type_setof_root; type Type_setof_root Type_setof_subtypedroot length(1..Nonexi12); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->VariableRef->VarIdentifier: StatementBlock .*---------------------------------------------------------------------* :xmp tab=0. VariableRef->VarIdentifier: StatementBlock> module ModuleA { function MyFunc() { Nonexi01 := 10; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->VariableRef->VarIdentifier: ControlStatement->BasicStatements .*---------------------------------------------------------------------* :xmp tab=0. VariableRef->VarIdentifier: ControlStatement->BasicStatements> module ModuleA { control { Nonexi02 := 10; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->VariableRef->VarIdentifier: ControlStatement->StatementBlock .*---------------------------------------------------------------------* :xmp tab=0. VariableRef->VarIdentifier: ControlStatement->StatementBlock> module ModuleA { control { // TR 670: memory leak when using non existent symbol in do-while loop do { Nonexi03 := 10; } while (false); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->VariableRef->VarIdentifier: ControlStatement->Initial .*---------------------------------------------------------------------* :xmp tab=0. VariableRef->VarIdentifier: ControlStatement->Initial> module ModuleA { control { var integer i; for (Nonexi04:=0; i<10; i:=i+1) {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->VariableRef->VarIdentifier: ControlStatement->Step .*---------------------------------------------------------------------* :xmp tab=0. VariableRef->VarIdentifier: ControlStatement->Step> module ModuleA { control { for (var integer i:=0; i<10; Nonexi05:=i+1) {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->VariableRef->ExtendedFieldReference->Field: StatementBlock .*---------------------------------------------------------------------* :xmp tab=0. VariableRef->ExtendedFieldReference->Field: StatementBlock> module ModuleA { type record of integer Embedded; type record MyType { integer field1, Embedded field2 } // StatementBlock function MyFunc() { var MyType MyVar; MyVar.Nonexi01 := 10; } } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->VariableRef->ExtendedFieldReference->Array: StatementBlock .*---------------------------------------------------------------------* :xmp tab=0. VariableRef->ExtendedFieldReference->Array: StatementBlock> module ModuleA { type record of integer Embedded; type record MyType { integer field1, Embedded field2 } // StatementBlock function MyFunc() { var MyType MyVar; MyVar.field2[666-Nonexi02] := 10; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->VariableRef->ExtendedFieldReference: ControlStatement->BasicStatements .*---------------------------------------------------------------------* :xmp tab=0. VariableRef->ExtendedFieldReference: ControlStatement->BasicStatements> module ModuleA { type record of integer Embedded; type record MyType { integer field1, Embedded field2 } control { var MyType MyVar; // BasicStatements MyVar.Nonexi03 := 10; MyVar.field2[Nonexi04] := 10; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->VariableRef->ExtendedFieldReference: Inner statementBlock->BasicStatements .*---------------------------------------------------------------------* :xmp tab=0. VariableRef->ExtendedFieldReference: Inner statementBlock->BasicStatements> module ModuleA { type record of integer Embedded; type record MyType { integer field1, Embedded field2 } control { var MyType MyVar; do { MyVar.Nonexi05 := 10; MyVar.field2[Nonexi06] := 10; } while (false); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->VariableRef->ExtendedFieldReference: Initial .*---------------------------------------------------------------------* :xmp tab=0. VariableRef->ExtendedFieldReference: Initial> module ModuleA { type record of integer Embedded; type record MyType { integer field1, Embedded field2 } control { var integer i; var MyType MyVar; for (MyVar.Nonexi07:=0; i<10; i:=i+1) {} for (MyVar.field2[Nonexi08]:=0; i<10; i:=i+1) {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->VariableRef->ExtendedFieldReference: Step .*---------------------------------------------------------------------* :xmp tab=0. VariableRef->ExtendedFieldReference: Step> module ModuleA { type record of integer Embedded; type record MyType { integer field1, Embedded field2 } control { var MyType MyVar; for (var integer i:=0; i<10; MyVar.Nonexi09:=i+1) {} for (var integer i:=0; i<10; MyVar.field2[Nonexi10]:=i+1) {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: ReferencedValue .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: ReferencedValue> module ModuleA { control { var integer MyVarInteger; MyVarInteger := 10 + Nonexi01 - 170; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: ValueReference->ExtendedFieldReference->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: ValueReference->ExtendedFieldReference->Identifier> module ModuleA { type set MyType { integer field1 } control { var MyType MyCompoundVar; var integer MyIntegerVar; // TR 666: Duplicated error message for a non existent field reference MyIntegerVar := 10 + MyCompoundVar.Nonexi04; } } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: OpCall->ConfigurationOps->CreateOp->ComponentTypeIdentifier .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: OpCall->ConfigurationOps->CreateOp->ComponentTypeIdentifier> module ModuleA { type port MyPortType message{ inout boolean; } type component MyComp {port MyPortType MyPort} function F() runs on MyComp { var MyComp MyCompVar; MyCompVar := Nonexi.create; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: OpCall->ConfigurationOps->RunningOp->ComponentIdentifier->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: OpCall->ConfigurationOps->RunningOp->ComponentIdentifier->Identifier> module ModuleA { type port MyPortType message{ inout boolean; } type component MyComp {port MyPortType MyPort} function F() runs on MyComp { var boolean MyVarBoolean; MyVarBoolean := false or Nonexi09.running; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: OpCall->ConfigurationOps->RunningOp->ComponentIdentifier->ExtendedFieldReference->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: OpCall->ConfigurationOps->RunningOp->ComponentIdentifier->ExtendedFieldReference->ArrayOrBitRef> module ModuleA { type component MyComp {timer MyTimer[6]} function F() runs on MyComp { var boolean MyVarBoolean; MyVarBoolean := true and MyTimer[Nonexi10 + 7].running; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: OpCall->ConfigurationOps->RunningOp->ComponentIdentifier->FunctionRef .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: OpCall->ConfigurationOps->RunningOp->ComponentIdentifier->FunctionRef> module ModuleA { type component MyComp {} function F() runs on MyComp { var boolean MyVarBoolean; MyVarBoolean := Nonexi11().running; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: TimerOps->ReadTimerOp->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: TimerOps->ReadTimerOp->Identifier> module ModuleA { control { var float MyVarFloat; MyVarFloat := Nonexi14.read; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: TimerOps->ReadTimerOp->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: TimerOps->ReadTimerOp->ArrayOrBitRef> module ModuleA { control { var float MyVarFloat; timer MyTimer[6..8]; MyVarFloat := MyTimer[Nonexi15].read; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: TimerOps->RunningTimerOp->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: TimerOps->RunningTimerOp->Identifier> module ModuleA { control { var boolean MyVarBoolean; MyVarBoolean := true and Nonexi16.running; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: TimerOps->RunningTimerOp->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: TimerOps->RunningTimerOp->ArrayOrBitRef> module ModuleA { control { var boolean MyVarBoolean; timer MyTimer[5..9999]; MyVarBoolean := MyTimer[Nonexi17].running or MyTimer[7].running; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: TestcaseInstance->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: TestcaseInstance->Identifier> module ModuleA { control { var verdicttype MyVarVerdict; MyVarVerdict := execute(Nonexi18(1),1.2); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: TestcaseInstance->TimerValue .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: TestcaseInstance->TimerValue> module ModuleA { type component MyComp {} testcase MyTC() runs on MyComp { setverdict(pass); } control { var verdicttype MyVarVerdict; MyVarVerdict := execute(MyTC(),Nonexi * 10.0); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: FunctionInstance->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: FunctionInstance->Identifier> module ModuleA { control { var boolean MyVarBoolean; MyVarBoolean := Nonexi22(false,7,8,8,8,10, 1); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: FunctionInstance->Identifier .*---------------------------------------------------------------------* Covered already with 'expression' and 'TemplateInstance'. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->SingleExpression: ActivateOp->AltstepRef->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Expression->SingleExpression: ActivateOp->AltstepRef->Identifier> module ModuleA { type component MyComp {} function F() runs on MyComp { var default MyVarDefault; MyVarDefault := activate(Nonexi25()); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->CompoundExpression: FieldExpressionList .*---------------------------------------------------------------------* :xmp tab=0. Expression->CompoundExpression: FieldExpressionList> module ModuleA.objid {0 4 0} { type record of integer Embedded; type record MyType { integer field1 } // FieldExpressionList // Others are covered by expression const MyType MyConstType := { field1 := 77 + 1 - 22 / 2 * 23 + Nonexi01 } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Assignment->Expression->CompoundExpression: ArrayExpression .*---------------------------------------------------------------------* :xmp tab=0. Expression->CompoundExpression: ArrayExpression> module ModuleA.objid {0 4 0} { control { // ArrayExpression // Others are covered by expression var integer MyVarInteger[2][3] := {{ 1,2, Nonexi01 }, Nonexi02}; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Expression->GlobalModuleId: GlobalModuleId->Module Identifier .*---------------------------------------------------------------------* :xmp tab=0. GlobalModuleId: GlobalModuleId->Module Identifier> module ModuleA { const integer c1 := 2 + Nonexi01.Nonexi; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Expression->GlobalModuleId: GlobalModuleId->Referenced Identifier .*---------------------------------------------------------------------* :xmp tab=0. GlobalModuleId: GlobalModuleId->Referenced Identifier> module ModuleA { const integer c1 := 2 + ModuleA.Nonexi02; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Expression->GlobalModuleId: GlobalModuleId->ObjId .*---------------------------------------------------------------------* :xmp tab=0. GlobalModuleId: GlobalModuleId->ObjId> module ModuleA { // NOTE: SA is not performed for objid values const integer c1 := 2 + ModuleA.objid {0 4 Nonexi}.c0; const integer c0 := 0; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Expression->GlobalModuleId: GlobalModuleId->NumberForm->ReferencedValue .*---------------------------------------------------------------------* :xmp tab=0. GlobalModuleId: GlobalModuleId->NumberForm->ReferencedValue> module ModuleA { type record of integer Embedded; type record MyType { integer field1, Embedded field2 } const integer c0 := 0; const MyType MyConst2 := { field1 := 4, field2 := { 0,1,2,3,4 } }; // NOTE: SA is not performed for objid values const integer c4 := 2 + ModuleA.objid {0 4 MyConst2.Nonexi04}.c0; const integer c5 := 2 + ModuleA.objid {0 4 MyConst2.field2[Nonexi05]}.c0; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Expression->GlobalModuleId: GlobalModuleId->Embedded form .*---------------------------------------------------------------------* :xmp tab=0. GlobalModuleId: GlobalModuleId->Embedded form> module ModuleA { type record of integer Embedded; type record MyType { integer field1, Embedded field2 } const integer c0 := 0; const MyType MyConst2 := { field1 := 4, field2 := { 0,1,2,3,4 } }; // NOTE: SA is not performed for objid values const integer c8 := 2 + ModuleA.objid {0 4 ModuleA.objid {0 4 ModuleA.objid {0 4 MyConst2.field2[Nonexi08]}.c0}.c0}.c0; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Expression->GlobalModuleId: GlobalModuleId->NameAndNumberForm .*---------------------------------------------------------------------* :xmp tab=0. GlobalModuleId: GlobalModuleId->NameAndNumberForm> module ModuleA { // NOTE: SA is not performed for objid values const integer c0 := 0; const integer c9 := 2 + ModuleA.objid {itu_t(Nonexi09) 4 0}.c0; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Expression->VariableRef: VarIdentifier .*---------------------------------------------------------------------* :xmp tab=0. VariableRef: VarIdentifier> module ModuleA { control { // VarIdentifier var integer MyVar; MyVar := 2 + Nonexi01; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Expression->VariableRef: ExtendedFieldReference .*---------------------------------------------------------------------* :xmp tab=0. VariableRef: ExtendedFieldReference> module ModuleA { type record of integer Embedded; type record MyType { integer field1, Embedded field2 } control { var MyType MyVar; MyVar.field1 := 2 + MyVar.Nonexi02; MyVar.field2[0] := 2 + MyVar.field2[2 + Nonexi03]; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Expression->FunctionRef: FunctionIdentifier .*---------------------------------------------------------------------* :xmp tab=0. FunctionRef: FunctionIdentifier> module ModuleA { type record MyType { float field1 } control { var MyType MyVar; MyVar.field1 := 2.0 + Nonexi01(); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Expression->AltstepRef: AltstepIdentifier .*---------------------------------------------------------------------* :xmp tab=0. AltstepRef: AltstepIdentifier> module ModuleA { control { alt { [] Nonexi01() {} } } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleParDef: Type .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { modulepar { // Type Nonexi01 MyPar1; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleParDef: ConstantExpression .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { modulepar { integer MyPar5 := 0 + Nonexi05 // Others are covered in 'expression' } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ConstDef: Type .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { // basic type const Nonexi01 MyConst1 := 10; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ConstDef: ExtendedFieldReference->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. ArrayOrBitRef> module ModuleA { // TR 608: More than one error message is shown for a situation const integer MyConst[666-Nonexi05] := { 10 }; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ConstDef: Expression in RVALUE .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { const integer MyConst6 := 100, MyConst7 := Nonexi06; // Others are covered in 'expression' } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: ReferencedType .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { template Nonexi01 MyTemplate1 := 10; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateFormalParList .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { template integer MyTemplate5(Nonexi05 InPar1) := 10; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: DerivedDef->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Identifier> module ModuleA { template integer MyTemplate6 modifies Nonexi06 := 10; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->Expression .*---------------------------------------------------------------------* :xmp tab=0. Expression> module ModuleA { template integer MyTemplate10 := 55 - Nonexi10; // Others are covered in 'expression' } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->Complement .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->Complement> module ModuleA { template integer MyTemplate11 := complement (10, Nonexi11); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->ValueOrAttribList .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->ValueOrAttribList> module ModuleA { template integer MyTemplate12 := (10, Nonexi12); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->Range .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->Range> module ModuleA { template integer MyTemplate13 := (10 .. Nonexi13); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->SubsetMatch .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->SubsetMatch> module ModuleA { type set of integer MyType; template MyType MyTemplate14 := subset (10, Nonexi14); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->SupersetMatch .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->SupersetMatch> module ModuleA { type set of integer MyType; template MyType MyTemplate15 := superset (10, Nonexi15); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->PermutationMatch .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->PermutationMatch> module ModuleA { type record of integer MyType2; // TR 609: fatal error if permutation is used for integer template // template integer MyTemplate16 := permutation (10, Nonexi16); template MyType2 MyTemplate16 := { permutation (1,2,3,Nonexi16)}; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->ExtraMatchingAttributes->LengthMatch .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->ExtraMatchingAttributes->LengthMatch> module ModuleA { template charstring MyTemplate17 := * length (5+Nonexi17); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->ExtraMatchingAttributes->LengthMatch->Range .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->ExtraMatchingAttributes->LengthMatch->Range> module ModuleA { template charstring MyTemplate17 := * length (2..5+Nonexi17); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->SimpleSpec->TemplateRefWithParList->Identifier .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->TemplateRefWithParList->Identifier> module ModuleA { template integer MyTemplate19 := Nonexi19(100); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->SimpleSpec->TemplateRefWithParList->Identifier->ParValue .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->TemplateRefWithParList->Identifier->ParValue> module ModuleA { template integer MyTemplateInteger(integer InPar) := InPar; template integer MyTemplate22 := MyTemplateInteger(Nonexi22); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->FieldSpecList->FieldReference .*---------------------------------------------------------------------* :xmp tab=0. FieldSpecList->FieldReference> module ModuleA { type record MyTypeRecord { integer field1 }; template MyTypeRecord MyTemplate23 := { field1 := 10, Nonexi23 := 10 }; } (?im)\berror\b.+?non.+?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->FieldSpecList->Value .*---------------------------------------------------------------------* :xmp tab=0. FieldSpecList->Value> module ModuleA { type record MyTypeRecord { integer field1 }; template MyTypeRecord MyTemplate24 := { field1 := float2int(4.3) + Nonexi24 }; // others are covered in 'templatebody' } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->ArrayValueOrAttrib .*---------------------------------------------------------------------* :xmp tab=0. ArrayValueOrAttrib> module ModuleA { // NOTE: array types are not yet supported type record MyTypeRecord { integer field1[3] }; template MyTypeRecord.field1 MyTemplate25 := {10, 10, Nonexi}; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?not.+?supported (?is)\berror: :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateDef: TemplateBody->Nonexistent parameter .*---------------------------------------------------------------------* :xmp tab=0. Nonexistent parameter> module ModuleA { signature MySig1(integer par1, boolean par2); template MySig1 MyTemplate26 := { par1 := 666, par2 := false, nonexi := 44.3 } } (?im)\berror\b.+?Reference.+?to.+?non.*?existent.+?parameter.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: ReferencedType .*---------------------------------------------------------------------* :xmp tab=0. // NOTE: dynamic templates are extensions to the standard module ModuleA { type component MyComp { var template Nonexi01 MyTemplate1 := 10; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->Expression .*---------------------------------------------------------------------* :xmp tab=0. Expression> // NOTE: dynamic templates are extensions to the standard module ModuleA { type component MyComp { var template integer MyTemplate10 := 333 - (Nonexi05); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->Complement .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->Complement> // NOTE: dynamic templates are extensions to the standard module ModuleA { type component MyComp { var template integer MyTemplate11 := complement (10, Nonexi06); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->ValueOrAttribList .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->ValueOrAttribList> // NOTE: dynamic templates are extensions to the standard module ModuleA { type component MyComp { var template integer MyTemplate12 := (10, Nonexi07); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->Range .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->Range> // NOTE: dynamic templates are extensions to the standard module ModuleA { type component MyComp { var template integer MyTemplate13 := (10 .. 33+Nonexi08); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->SubsetMatch .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->SubsetMatch> // NOTE: dynamic templates are extensions to the standard module ModuleA { type set of integer MyType; type component MyComp { var template MyType MyTemplate14 := subset (10, 22+Nonexi09); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->SupersetMatch .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->SupersetMatch> // NOTE: dynamic templates are extensions to the standard module ModuleA { type set of integer MyType; type component MyComp { var template MyType MyTemplate15 := superset (10, Nonexi10); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->PermutationMatch .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->PermutationMatch> // NOTE: dynamic templates are extensions to the standard module ModuleA { type record of integer MyType2; type component MyComp { var template MyType2 MyTemplate16 := { permutation (1,2,3,Nonexi11)}; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->ExtraMatchingAttributes->LengthMatch .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->ExtraMatchingAttributes->LengthMatch> // NOTE: dynamic templates are extensions to the standard module ModuleA { type component MyComp { var template charstring MyTemplate17 := * length (22+Nonexi12); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->SimpleSpec->SingleValueOrAttrib->ExtraMatchingAttributes->LengthMatch->Range .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->SingleValueOrAttrib->ExtraMatchingAttributes->LengthMatch->Range> // NOTE: dynamic templates are extensions to the standard module ModuleA { type component MyComp { var template charstring MyTemplate18 := * length (11.. Nonexi13); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->SimpleSpec->TemplateRefWithParList->Identifier .*---------------------------------------------------------------------* :xmp tab=0. SimpleSpec->TemplateRefWithParList->Identifier> // NOTE: dynamic templates are extensions to the standard module ModuleA { type component MyComp { var template integer MyTemplate19 := Nonexi14 + 100*2; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->FieldSpecList->FieldReference .*---------------------------------------------------------------------* :xmp tab=0. FieldSpecList->FieldReference> // NOTE: dynamic templates are extensions to the standard module ModuleA { type record MyTypeRecord { integer field1 }; type component MyComp { var template MyTypeRecord MyTemplate23 := { field1 := 10, Nonexi17 := 10 }; } } (?im)\berror\b.+?non.+?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->FieldSpecList->Value .*---------------------------------------------------------------------* :xmp tab=0. FieldSpecList->Value> // NOTE: dynamic templates are extensions to the standard module ModuleA { type record MyTypeRecord { integer field1 }; type component MyComp { var template MyTypeRecord MyTemplate24 := { field1 := Nonexi18 }; // others are covered in 'templatebody' } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->ArrayValueOrAttrib .*---------------------------------------------------------------------* :xmp tab=0. ArrayValueOrAttrib> // NOTE: dynamic templates are extensions to the standard module ModuleA { // NOTE: array types are not yet supported type record MyTypeRecord { integer field1[2..4] }; type component MyComp { var template MyTypeRecord.field1 MyTemplate25 := { 7, Nonexi19, 100 }; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?not.+?supported (?is)\berror: :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::DynamicTemplateDef: TemplateBody->Nonexistent parameter .*---------------------------------------------------------------------* :xmp tab=0. Nonexistent parameter> // NOTE: dynamic templates are extensions to the standard module ModuleA { signature MySig1(integer par1, boolean par2); type component MyComp { var template MySig1 MyTemplate26 := { par1 := 666, par2 := false, nonexi := 44.3 } } } (?im)\berror\b.+?Reference.+?to.+?non.*?existent.+?parameter.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FunctionDef: FunctionFormalParList->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Identifier> module ModuleA { function MyFunc1(Nonexi01 InPar) {} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FunctionDef: FunctionFormalParList->FormalTemplatePar .*---------------------------------------------------------------------* :xmp tab=0. FormalTemplatePar> module ModuleA { function MyFunc6(template Nonexi06 InPar) {} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FunctionDef: RunsOnSpec .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { function MyFunc10() runs on Nonexi10 {} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FunctionDef: ReturnType .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { function MyFunc14() return Nonexi14 {} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::SignatureDef: SignatureFormalParList->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Identifier> module ModuleA { signature MySignature1(Nonexi01 InPar); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::SignatureDef: ReturnType .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { signature MySignature5() return Nonexi05; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::SignatureDef: ExceptionList .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { signature MySignature9() exception (Nonexi09); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TestcaseDef: TestcaseFormalParList->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Identifier> module ModuleA { type record of integer MyType; type port MyPortType message { inout MyType; } type component MyCompType { port MyPortType MyPort } testcase MyTC1(Nonexi01 InPar) runs on MyCompType {} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TestcaseDef: TestcaseFormalParList->FormalTemplatePar .*---------------------------------------------------------------------* :xmp tab=0. FormalTemplatePar> module ModuleA { type record of integer MyType; type port MyPortType message { inout MyType; } type component MyCompType { port MyPortType MyPort } testcase MyTC5(template Nonexi05 InPar) runs on MyCompType {} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TestcaseDef: RunsOnSpec .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type record of integer MyType; type port MyPortType message { inout MyType; } type component MyCompType { port MyPortType MyPort } testcase MyTC9() runs on Nonexi9 {} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TestcaseDef: SystemSpec .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type record of integer MyType; type port MyPortType message { inout MyType; } type component MyCompType { port MyPortType MyPort } testcase MyTC13() runs on MyCompType system Nonexi13 {} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef: AltstepFormalParList->Identifier .*---------------------------------------------------------------------* :xmp tab=0. Identifier> module ModuleA { type port MyPortType message { inout boolean; } type component MyCompType { port MyPortType MyPort; } // others should be covered in 'FormalParList' altstep MyAltstep1(Nonexi01 InPar) runs on MyCompType {[] MyPort.receive{}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef: RunsOnSpec .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type port MyPortType message { inout boolean; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep02() runs on Nonexi02 {[] any port.receive{}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef: GuardStatement->AltGuardChar->BooleanExpression .*---------------------------------------------------------------------* :xmp tab=0. AltGuardChar->BooleanExpression> module ModuleA { type port MyPortType message { inout boolean; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep03() runs on MyCompType {[false or Nonexi03] MyPort.receive{}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef: GuardStatement->AltstepInstance->AltstepRef .*---------------------------------------------------------------------* :xmp tab=0. AltstepInstance->AltstepRef> module ModuleA { type port MyPortType message { inout boolean; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep04() runs on MyCompType {[] Nonexi()} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef: GuardStatement->AltstepInstance->FunctionActualParList .*---------------------------------------------------------------------* :xmp tab=0. AltstepInstance->FunctionActualParList> module ModuleA { type port MyPortType message { inout boolean; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep1(integer InPar) runs on MyCompType {[] MyPort.receive{}} altstep MyAltstep05() runs on MyCompType {[] MyAltstep1(2 + Nonexi05)} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef: GuardStatement->AltstepInstance->GuardOp->TimeoutStatement->TimerRef->TimerIdentifier .*---------------------------------------------------------------------* :xmp tab=0. AltstepInstance->GuardOp->TimeoutStatement->TimerRef->TimerIdentifier> module ModuleA { type port MyPortType message { inout boolean; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep06() runs on MyCompType {[] Nonexi06.timeout{}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef: GuardStatement->AltstepInstance->GuardOp->TimeoutStatement->TimerRef->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. AltstepInstance->GuardOp->TimeoutStatement->TimerRef->ArrayOrBitRef> module ModuleA { type port MyPortType message { inout boolean; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep07() runs on MyCompType { timer TimerPar[10]; [] TimerPar[Nonexi07 + 2].timeout{} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->Port->PortIdentifier .*---------------------------------------------------------------------* :xmp tab=0. ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->Port->PortIdentifier> module ModuleA { type port MyPortType message { inout float; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep08() runs on MyCompType {[] Nonexi08.receive{}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->Port->PortIdentifier->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->Port->PortIdentifier->ArrayOrBitRef> module ModuleA { type port MyPortType message { inout float; } type component MyCompType { port MyPortType MyPortArray[10]; } altstep MyAltstep09() runs on MyCompType {[] MyPortArray[Nonexi09 + 2].receive{}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->PortReceiveOp->ReceiveParameter .*---------------------------------------------------------------------* :xmp tab=0. ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->PortReceiveOp->ReceiveParameter> module ModuleA { type port MyPortType message { inout float; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep10() runs on MyCompType {[] MyPort.receive(Nonexi10 + 2) {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->PortReceiveOp->FromClause->VariableRef .*---------------------------------------------------------------------* :xmp tab=0. ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->PortReceiveOp->FromClause->VariableRef> module ModuleA { type record MyType1 { integer field1 } type port MyPortType message { inout MyType1; } type component MyCompType { port MyPortType MyPort; var MyType1 MyVar1; } altstep MyAltstep11() runs on MyCompType {[] MyPort.receive from MyVar1.Nonexi11 {}} } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi11 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->PortReceiveOp->FromClause->FunctionInstance->FunctionRef .*---------------------------------------------------------------------* :xmp tab=0. ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->PortReceiveOp->FromClause->FunctionInstance->FunctionRef> module ModuleA { type port MyPortType message { inout integer; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep12() runs on MyCompType {[] MyPort.receive from Nonexi12() {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->PortReceiveOp->PortRedirect->ValueSpec .*---------------------------------------------------------------------* :xmp tab=0. ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->PortReceiveOp->PortRedirect->ValueSpec> module ModuleA { type port MyPortType message { inout integer; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep13() runs on MyCompType {[] MyPort.receive(?) -> value Nonexi13 {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->PortReceiveOp->PortRedirect->SenderSpec .*---------------------------------------------------------------------* :xmp tab=0. ReceiveOp: GuardStatement->AltstepInstance->GuardOp->ReceiveStatement->PortReceiveOp->PortRedirect->SenderSpec> module ModuleA { type port MyPortType message { inout integer; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep15() runs on MyCompType {[] MyPort.receive(?) -> sender Nonexi15 {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->Port .*---------------------------------------------------------------------* :xmp tab=0. TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->Port> module ModuleA { type port MyPortType message { inout verdicttype; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep16() runs on MyCompType {[] Nonexi16.trigger {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->Port->ArrayOrBitRef> module ModuleA { type port MyPortType message { inout float, verdicttype; } type component MyCompType { port MyPortType MyPortArray[(10-7)*7]; } altstep MyAltstep17() runs on MyCompType {[] MyPortArray[Nonexi17].trigger {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->PortTriggerOp .*---------------------------------------------------------------------* :xmp tab=0. TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->PortTriggerOp> module ModuleA { type port MyPortType message { inout integer; in boolean; } type component MyCompType { port MyPortType MyPort; } // others should be covered in 'TemplateInstance' altstep MyAltstep18() runs on MyCompType {[] MyPort.trigger(Nonexi18 + 2) {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->PortReceiveOp->FromClause->VariableRef .*---------------------------------------------------------------------* :xmp tab=0. TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->PortReceiveOp->FromClause->VariableRef> module ModuleA { type port MyPortType message { inout MyType1; } type record MyType1 { integer field1 } type component MyCompType { port MyPortType MyPort; var MyType1 MyVar1; } // GuardStatement->AltstepInstance->GuardOp->TriggerStatement->PortReceiveOp->FromClause->VariableRef // others should be covered in 'VariableRef' altstep MyAltstep19() runs on MyCompType {[] MyPort.trigger from MyVar1.Nonexi19 {}} } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi19 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->PortReceiveOp->FromClause->FunctionInstance->FunctionRef .*---------------------------------------------------------------------* :xmp tab=0. TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->PortReceiveOp->FromClause->FunctionInstance->FunctionRef> module ModuleA.objid {0 4 0} { type port MyPortType message { in charstring; } type component MyCompType { port MyPortType MyPort; } // others should be covered in 'FunctionRef' altstep MyAltstep20() runs on MyCompType {[] MyPort.trigger from ModuleA.objid {0 4 0}.Nonexi20() {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->PortReceiveOp->PortRedirect->ValueSpec .*---------------------------------------------------------------------* :xmp tab=0. TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->PortReceiveOp->PortRedirect->ValueSpec> module ModuleA { type port MyPortType message { inout MyType1; } type record MyType1 { integer field1 } type component MyCompType { port MyPortType MyPort; var MyType1 MyVar1; } // others should be covered in 'VariableRef' altstep MyAltstep21() runs on MyCompType {[] MyPort.trigger(?) -> value MyVar1.Nonexi21 {}} } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi21 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->PortReceiveOp->PortRedirect->SenderSpec .*---------------------------------------------------------------------* :xmp tab=0. TriggerOp: GuardStatement->AltstepInstance->GuardOp->TriggerStatement->PortReceiveOp->PortRedirect->SenderSpec> module ModuleA { type port MyPortType message { inout MyType1; } type record MyType1 { integer field1 } type component MyCompType { port MyPortType MyPort; var MyType1 MyVar1; var MyCompType MyVar2; } // others should be covered in 'VariableRef' altstep MyAltstep22() runs on MyCompType {[] MyPort.trigger(?) -> value MyVar1 sender Nonexi22 {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi22 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->Port .*---------------------------------------------------------------------* :xmp tab=0. GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->Port> module ModuleA { signature MyProc1(); type port MyPortType2 procedure { in MyProc1 } type component MyCompType { port MyPortType2 MyPort2; } // GuardStatement->AltstepInstance->GuardOp->GetCallStatement->Port altstep MyAltstep24() runs on MyCompType {[] Nonexi24.getcall {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->Port->ArrayOrBitRef> module ModuleA { signature MyProc1(); type port MyPortType2 procedure { in MyProc1 } type component MyCompType { port MyPortType2 MyPortArray2[10]; } // GuardStatement->AltstepInstance->GuardOp->GetCallStatement->Port->ArrayOrBitRef altstep MyAltstep25() runs on MyCompType {[] MyPortArray2[Nonexi25].getcall {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortTriggerOp .*---------------------------------------------------------------------* :xmp tab=0. GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortTriggerOp> module ModuleA { type record MyType1 { integer field1 } signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { in MyProc2 } type component MyCompType { port MyPortType2 MyPort2; } // others should be covered in 'TemplateInstance' // TR 612: getcall parameter not supported, parse error altstep MyAltstep26() runs on MyCompType {[] MyPort2.getcall(MyProc2:{Nonexi26}) {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)parse.+?error (?is)\berror: :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->FromClause->VariableRef .*---------------------------------------------------------------------* :xmp tab=0. GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->FromClause->VariableRef> module ModuleA { type record of integer MyType; signature MyProc1(); type port MyPortType2 procedure { in MyProc1 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; } // others should be covered in 'VariableRef' altstep MyAltstep27() runs on MyCompType {[] MyPort2.getcall from MyVar1.Nonexi27 {}} } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi27 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->FromClause->FunctionInstance->FunctionRef .*---------------------------------------------------------------------* :xmp tab=0. GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->FromClause->FunctionInstance->FunctionRef> module ModuleA.objid {0 4 0} { signature MyProc1(); type port MyPortType2 procedure { in MyProc1 } type component MyCompType { port MyPortType2 MyPort2; } // others should be covered in 'FunctionRef' altstep MyAltstep28() runs on MyCompType {[] MyPort2.getcall from ModuleA.objid {0 4 0}.Nonexi28() {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->PortRedirectWithParam->ValueSpec .*---------------------------------------------------------------------* :xmp tab=0. GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->PortRedirectWithParam->ValueSpec> module ModuleA { type record of integer MyType; signature MyProc1(); type port MyPortType2 procedure { in MyProc1 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; } // others should be covered in 'VariableRef' // TR 611: Memory leak in compiler // NOTE: fault in TTCN-3 BNF (mockup v1): value redirect shall not be allowed for getcall altstep MyAltstep29() runs on MyCompType {[] MyPort2.getcall(?) -> value MyVar1.Nonexi29 {}} } (?im)syntax.+?\berror\b (?is)\berror: :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->PortRedirectWithParam->ParaSpec->VariableAssignment1 .*---------------------------------------------------------------------* :xmp tab=0. GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->PortRedirectWithParam->ParaSpec->VariableAssignment1> module ModuleA { type record of integer MyType; signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { in MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; } // others should be covered in 'VariableRef' // TR 610: VariableAssignment is not supported in ParaSpec altstep MyAltstep30() runs on MyCompType {[] MyPort2.getcall(MyProc2:{?}) -> param (MyVar1.Nonexi30 := MyParam1) {}} } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi30 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->PortRedirectWithParam->ParaSpec->VariableAssignment2 .*---------------------------------------------------------------------* :xmp tab=0. GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->PortRedirectWithParam->ParaSpec->VariableAssignment2> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { in MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; } // TR 610: VariableAssignment is not supported in ParaSpec altstep MyAltstep31() runs on MyCompType {[] MyPort2.getcall(MyProc2:{?}) -> param (MyVar1 := Nonexi31) {}} } (?im)\berror\b.+?signature.+?not.+?have.+?parameter.+?Nonexi31 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->PortRedirectWithParam->ParaSpec->VariableList .*---------------------------------------------------------------------* :xmp tab=0. GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->PortRedirectWithParam->ParaSpec->VariableList> module ModuleA { type record MyType1 { integer field1 } signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { in MyProc2 } type component MyCompType { port MyPortType2 MyPort2; } // others should be covered in 'VariableRef' // TR 612: getcall parameter not supported, parse error altstep MyAltstep32() runs on MyCompType {[] MyPort2.getcall(MyProc2:{?}) -> param (Nonexi32) {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->PortRedirect->SenderSpec .*---------------------------------------------------------------------* :xmp tab=0. GetcallOp: GuardStatement->AltstepInstance->GuardOp->GetCallStatement->PortReceiveOp->PortRedirect->SenderSpec> module ModuleA { type record of integer MyType; signature MyProc1(); signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType message { inout MyType; inout MyType1; } type port MyPortType2 procedure { in MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; } // others should be covered in 'VariableRef' // TR 612: getcall parameter not supported, parse error altstep MyAltstep33() runs on MyCompType {[] MyPort2.getcall(MyProc2:{?}) -> sender MyVar1.Nonexi33 {}} } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi33 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->Port .*---------------------------------------------------------------------* :xmp tab=0. CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->Port> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { in MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort; } altstep MyAltstep34() runs on MyCompType {[] Nonexi34.catch {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->Port->ArrayOrBitRef> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { inout MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPortArray2[10]; } altstep MyAltstep35() runs on MyCompType {[] MyPortArray2[Nonexi35 + 2].catch {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp .*---------------------------------------------------------------------* :xmp tab=0. CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { inout MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; } // others should be covered in 'TemplateInstance' altstep MyAltstep36() runs on MyCompType {[] MyPort2.catch(MyProc2, Nonexi36 + 2) {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp->SignatureIdentifier .*---------------------------------------------------------------------* :xmp tab=0. CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp->SignatureIdentifier> module ModuleA.objid {0 4 0} { signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { inout MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; } // others should be covered in 'GlobalModuleId' // TR 671: segfault and fatal error when using nonexistent signature symbol in catch operation altstep MyAltstep37() runs on MyCompType {[] MyPort2.catch(ModuleA.objid {0 4 0}.Nonexi37, 1.0) {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp->FromClause->VariableRef .*---------------------------------------------------------------------* :xmp tab=0. CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp->FromClause->VariableRef> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { inout MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; } // others should be covered in 'VariableRef' altstep MyAltstep38() runs on MyCompType {[] MyPort2.catch from MyVar1.Nonexi38 {}} } (?im)\berror\b.+?reference.+?non.*?existent.+?field.+?Nonexi38 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp->FromClause->FunctionInstance->FunctionRef .*---------------------------------------------------------------------* :xmp tab=0. CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp->FromClause->FunctionInstance->FunctionRef> module ModuleA.objid {0 4 0} { signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { inout MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; } // others should be covered in 'FunctionRef' altstep MyAltstep39() runs on MyCompType {[] MyPort2.catch from ModuleA.objid {0 4 0}.Nonexi39() {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp->PortRedirect->ValueSpec .*---------------------------------------------------------------------* :xmp tab=0. CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp->PortRedirect->ValueSpec> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { inout MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; } // others should be covered in 'VariableRef' altstep MyAltstep40() runs on MyCompType {[] MyPort2.catch(MyProc2, float:?) -> value MyVar1.Nonexi40 {}} } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi40 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp->PortRedirect->SenderSpec .*---------------------------------------------------------------------* :xmp tab=0. CatchOp: GuardStatement->AltstepInstance->GuardOp->CatchStatement->PortCatchOp->PortRedirect->SenderSpec> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float, MyType1); type port MyPortType2 procedure { inout MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; var MyCompType MyVar2; } // others should be covered in 'VariableRef' altstep MyAltstep41() runs on MyCompType {[] MyPort2.catch(MyProc2, ?) -> value MyVar1 sender Nonexi41 {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi41 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->Port .*---------------------------------------------------------------------* :xmp tab=0. GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->Port> module ModuleA { signature MyProc1(); type port MyPortType2 procedure { inout MyProc1 } type component MyCompType { port MyPortType2 MyPort2; } altstep MyAltstep01() runs on MyCompType {[] Nonexi01.getreply {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->Port->ArrayOrBitRef> module ModuleA { signature MyProc1(); type port MyPortType2 procedure { inout MyProc1 } type component MyCompType { port MyPortType2 MyPortArray2[10]; } altstep MyAltstep02() runs on MyCompType {[] MyPortArray2[Nonexi02].getreply {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortTriggerOp .*---------------------------------------------------------------------* :xmp tab=0. GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortTriggerOp> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float); type record MyType1 { integer field1 } type port MyPortType2 procedure { inout MyProc2 } type component MyCompType { port MyPortType2 MyPort2; } altstep MyAltstep03() runs on MyCompType {[] MyPort2.getreply(MyProc2:{Nonexi03}) {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->ValueClause .*---------------------------------------------------------------------* :xmp tab=0. GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->ValueClause> module ModuleA { signature MyProc2(MyType1 MyParam1) return integer exception (integer, float); type record MyType1 { integer field1 } type port MyPortType2 procedure { inout MyProc2 } type component MyCompType { port MyPortType2 MyPort2; } altstep MyAltstep04() runs on MyCompType {[] MyPort2.getreply(MyProc2:{?} value Nonexi04) {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->FromClause->VariableRef .*---------------------------------------------------------------------* :xmp tab=0. GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->FromClause->VariableRef> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float); type record MyType1 { integer field1 } type port MyPortType2 procedure { inout MyProc2 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; } altstep MyAltstep05() runs on MyCompType {[] MyPort2.getreply from MyVar1.Nonexi05 {}} } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi05 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortRedirectWithParam->ValueSpec .*---------------------------------------------------------------------* :xmp tab=0. GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortRedirectWithParam->ValueSpec> module ModuleA { signature MyProc2(MyType1 MyParam1) return integer exception (integer, float); type record MyType1 { integer field1 } type port MyPortType2 procedure { inout MyProc2 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; } altstep MyAltstep07() runs on MyCompType {[] MyPort2.getreply(MyProc2:{?}) -> value MyVar1.Nonexi07 {}} } (?im)\berror\b.+?reference.+?non-existent.+?field.+?Nonexi07 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortRedirectWithParam->ParaSpec->VariableAssignment->FieldRef .*---------------------------------------------------------------------* :xmp tab=0. GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortRedirectWithParam->ParaSpec->VariableAssignment->FieldRef> module ModuleA { signature MyProc2(inout MyType1 MyParam1) exception (integer, float); type record MyType1 { integer field1 } type port MyPortType2 procedure { inout MyProc2 } type component MyCompType { port MyPortType2 MyPort2; var MyCompType MyVar2; } altstep MyAltstep08() runs on MyCompType {[] MyPort2.getreply(MyProc2:{?}) -> param (MyVar2.Nonexi08 := MyParam1) {}} } (?im)\berror\b.+?invalid.+?field.+?reference.+?Nonexi08 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortRedirectWithParam->ParaSpec->VariableAssignment .*---------------------------------------------------------------------* :xmp tab=0. GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortRedirectWithParam->ParaSpec->VariableAssignment> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float); type record MyType1 { integer field1 } type port MyPortType2 procedure { inout MyProc2 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; } altstep MyAltstep09() runs on MyCompType { [] MyPort2.getreply(MyProc2:{?}) -> param (MyVar1 := Nonexi09) {} } } (?im)\berror\b.+?signature.+?not.+?have.+?parameter.+?Nonexi09 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortRedirectWithParam->ParaSpec->VariableList .*---------------------------------------------------------------------* :xmp tab=0. GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortRedirectWithParam->ParaSpec->VariableList> module ModuleA { signature MyProc2(inout MyType1 MyParam1) exception (integer, float); type record MyType1 { integer field1 } type port MyPortType2 procedure { inout MyProc2 } type component MyCompType { port MyPortType2 MyPort2; var MyType1 MyVar1; } altstep MyAltstep10() runs on MyCompType {[] MyPort2.getreply(MyProc2:{?}) -> param (Nonexi10) {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortRedirect->SenderSpec .*---------------------------------------------------------------------* :xmp tab=0. GetreplyOp: GuardStatement->AltstepInstance->GuardOp->GetReplyStatement->PortRedirect->SenderSpec> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float); type record MyType1 { integer field1 } type port MyPortType2 procedure { inout MyProc2 } type component MyCompType { port MyPortType2 MyPort2; } altstep MyAltstep11() runs on MyCompType {[] MyPort2.getreply(MyProc2:{?}) -> sender Nonexi11 {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->DoneOp: GuardStatement->AltstepInstance->GuardOp->DoneStatement->Port .*---------------------------------------------------------------------* :xmp tab=0. DoneOp: GuardStatement->AltstepInstance->GuardOp->DoneStatement->Port> module ModuleA { type port MyPortType message { inout universal charstring; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep01() runs on MyCompType {[] Nonexi01.done {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->DoneOp: GuardStatement->AltstepInstance->GuardOp->DoneStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. DoneOp: GuardStatement->AltstepInstance->GuardOp->DoneStatement->Port->ArrayOrBitRef> module ModuleA { type component MyCompType { var MyCompType MyCompVar[10000]; } altstep MyAltstep02() runs on MyCompType {[] MyCompVar[44-Nonexi02].done {}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CheckOp: GuardStatement->AltstepInstance->GuardOp->CheckStatement->Port->PortIdentifier .*---------------------------------------------------------------------* :xmp tab=0. CheckOp: GuardStatement->AltstepInstance->GuardOp->CheckStatement->Port->PortIdentifier> module ModuleA { type port MyPortType message { inout boolean; } type component MyCompType { port MyPortType MyPort; } altstep MyAltstep01() runs on MyCompType {[] Nonexi01.check{}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CheckOp: GuardStatement->AltstepInstance->GuardOp->CheckStatement->Port->PortIdentifier->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. CheckOp: GuardStatement->AltstepInstance->GuardOp->CheckStatement->Port->PortIdentifier->ArrayOrBitRef> module ModuleA { type port MyPortType message { inout bitstring, octetstring, hexstring; } type component MyCompType { port MyPortType MyPortArray[10]; } altstep MyAltstep02() runs on MyCompType {[] MyPortArray[Nonexi02 + 2].check{}} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CheckOp: Receive .*---------------------------------------------------------------------* :xmp tab=0. CheckOp: Receive> module ModuleA { type port MyPortType message { inout float; inout integer; } type component MyCompType { port MyPortType MyPort; } // NOTE: just one representative example from each operations // all subcases should already be covered in those operations altstep MyAltstep03() runs on MyCompType { [] MyPort.check( receive(integer:Nonexi01) from Nonexi02() -> value Nonexi03 sender Nonexi04 ) {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CheckOp: Getreply .*---------------------------------------------------------------------* :xmp tab=0. CheckOp: Getreply> module ModuleA { signature MyProc2(inout MyType1 MyParam1) return integer exception (integer, float); type port MyPortType2 procedure { inout MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; } // NOTE: just one representative example from each operations // all subcases should already be covered in those operations altstep MyAltstep04() runs on MyCompType { [] MyPort2.check( getreply(MyProc2:Nonexi01) from Nonexi02() -> value Nonexi03 param (Nonexi04) sender Nonexi05) {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CheckOp: Catch .*---------------------------------------------------------------------* :xmp tab=0. CheckOp: Catch> module ModuleA { signature MyProc2(MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { inout MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; } // NOTE: just one representative example from each operations // all subcases should already be covered in those operations altstep MyAltstep05() runs on MyCompType { [] MyPort2.check( catch(MyProc2, integer:Nonexi01) from Nonexi02() -> value Nonexi03 sender Nonexi04 ) {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::AltstepDef->CheckOp: Getcall .*---------------------------------------------------------------------* :xmp tab=0. CheckOp: Getcall> module ModuleA { signature MyProc2(inout MyType1 MyParam1) exception (integer, float); type port MyPortType2 procedure { inout MyProc2 } type record MyType1 { integer field1 } type component MyCompType { port MyPortType2 MyPort2; } // NOTE: just one representative example from each operations // all subcases should already be covered in those operations altstep MyAltstep06() runs on MyCompType { [] MyPort2.check( getcall(MyProc2:Nonexi01) from Nonexi02() -> param (Nonexi03) sender Nonexi04 ) {} }} (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ImportDef->ImportFromSpec->ModuleId->GlobalModuleId->ModuleIdentifier .*---------------------------------------------------------------------* :xmp tab=0. ImportFromSpec->ModuleId->GlobalModuleId->ModuleIdentifier> module ModuleA { import from Nonexi01 all; } (?im)\berror\b.+?no.+?module.+?identifier.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ImportDef->ImportFromSpec->ModuleId->GlobalModuleId->ModuleIdentifier->ObjectIdentifierValue .*---------------------------------------------------------------------* :xmp tab=0. ImportFromSpec->ModuleId->GlobalModuleId->ModuleIdentifier->ObjectIdentifierValue> module ModuleA { // others are covered in 'GlobalModuleId' // TR 627: warning message for objid values import from ModuleB.objid {0 4 Nonexi02} all; } module ModuleB { type integer ModuleBType; } (?im)\berror\b.+?no.+?definition.+?Nonexi.+?in.+?module (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ImportDef->LanguageSpec .*---------------------------------------------------------------------* :xmp tab=0. LanguageSpec> module ModuleA { // TR 626: warning message if 'LanguageSpec' is found // NOTE: improvement idea, TC should be changed if accepted. import from ModuleC language "Nonexi03" all; } module ModuleC { type integer ModuleCType; } (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ImportDef->AllWithExcepts .*---------------------------------------------------------------------* :xmp tab=0. AllWithExcepts> module ModuleA { import from ModuleD all except { type Nonexi04 }; } module ModuleD { type integer ModuleDType; } (?im)\berror\b.+?no.+?definition.+?Nonexi.+?in.+?module (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ImportDef->ImportElement .*---------------------------------------------------------------------* :xmp tab=0. ImportElement> module ModuleA { import from ModuleE { type Nonexi05 }; } module ModuleE { type integer ModuleEType; } (?im)\berror\b.+?no.+?definition.+?Nonexi.+?in.+?module (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ImportDef->ImportElement->AllWithExcepts .*---------------------------------------------------------------------* :xmp tab=0. ImportElement->AllWithExcepts> module ModuleA { import from ModuleF { type all except Nonexi06 }; } module ModuleF { type integer ModuleFType; } (?im)\berror\b.+?no.+?definition.+?Nonexi.+?in.+?module (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ImportDef: nonexistent element in an existing module .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { import from ModuleB all; const ModuleB.Nonexi07 MyConst := 666; } module ModuleB { type integer ModuleBType; } (?im)\berror\b.+?no.+?definition.+?Nonexi.+?visible.+?module (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ExtFunctionDef->FunctionFormalParList .*---------------------------------------------------------------------* :xmp tab=0. FunctionFormalParList> module ModuleA { // others are covered in 'FunctionFormalParList' external function MyFunc1 ( Nonexi01 Par1 ); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ExtFunctionDef->Type .*---------------------------------------------------------------------* :xmp tab=0. Type> module ModuleA.objid {0 4 0} { // others are covered in 'Type' external function MyFunc2 ( ) return ModuleA.objid {0 4 0}.Nonexi02; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ExtConstDef .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA.objid {0 4 0} { // others are covered in 'Type' external const ModuleA.objid {0 4 0}.Nonexi02 MyConst2; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FormalParList: FunctionFormalParList .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { function MyFunc1 (Nonexi01 Par1){}; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FormalParList: TemplateFormalParList .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { template integer MyTemplate1 (Nonexi05 Par1) := 10; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FormalParList: SignatureFormalParList .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { signature MySignature1 (Nonexi09 Par1); } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FormalParList: TestcaseFormalParList .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort } testcase MyTC1 (Nonexi11 Par1) runs on MyComp {}; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FormalParList: AltstepFormalParList .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort } altstep MyAltstep1 (Nonexi15 Par1) { [] any port.receive {} }; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateInstance: InLineTemplate->Type | Signature .*---------------------------------------------------------------------* :xmp tab=0. Type | Signature> module ModuleA { function MyFunc1(template integer Par1) {}; template integer MyTemplate1(integer Par1) := Par1; control { MyFunc1(Nonexi01:10); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateInstance: DerivedRefWithParList->TemplateRefWithParList->TemplateIdentifier .*---------------------------------------------------------------------* :xmp tab=0. TemplateRefWithParList->TemplateIdentifier> module ModuleA { function MyFunc1(template integer Par1) {}; template integer MyTemplate1(integer Par1) := Par1; control { MyFunc1(modifies Nonexi04 := 10); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateInstance: TemplateActualPar .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { function MyFunc1(template integer Par1) {}; template integer MyTemplate1(integer Par1) := Par1; control { // TR 680: parameterized inline modified template MyFunc1(modifies MyTemplate1(Nonexi) := 10); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::TemplateInstance: embedded TemplateInstance .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { function MyFunc1(template integer Par1) {}; template integer MyTemplate1(template integer Par1) := Par1; control { MyFunc1(modifies MyTemplate1(modifies MyTemplate1(Nonexi08) := 10 ) := 10); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->FunctionLocalInst->VarInstance .*---------------------------------------------------------------------* :xmp tab=0. FunctionLocalInst->VarInstance> module ModuleA { control { var Nonexi01 MyVar1 := 10, MyVar2; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->FunctionLocalInst->VarInstance->ArrayDef .*---------------------------------------------------------------------* :xmp tab=0. FunctionLocalInst->VarInstance->ArrayDef> module ModuleA { control { var integer MyVar3[Nonexi02]; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->FunctionLocalInst->VarInstance->ArrayDef->Range (upper bound) .*---------------------------------------------------------------------* :xmp tab=0. FunctionLocalInst->VarInstance->ArrayDef->Range (upper bound)> module ModuleA { control { var integer MyVar3[999..Nonexi02]; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->FunctionLocalInst->VarInstance->ArrayDef->Range (lower bound) .*---------------------------------------------------------------------* :xmp tab=0. FunctionLocalInst->VarInstance->ArrayDef->Range (lower bound)> module ModuleA { control { var integer MyVar3[Nonexi02..999]; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->FunctionLocalInst->VarInstance->ArrayDef->Multidimensional .*---------------------------------------------------------------------* :xmp tab=0. FunctionLocalInst->VarInstance->ArrayDef->Multidimensional> module ModuleA { control { var integer MyVar5[1+10][113+333][2+Nonexi05]; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\berror\b.+?must.+?evaluate.+?integer (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->FunctionLocalInst->VarInstance->RVALUE .*---------------------------------------------------------------------* :xmp tab=0. FunctionLocalInst->VarInstance->RVALUE> module ModuleA { control { var integer MyVar6 := 11-Nonexi06; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->FunctionLocalInst->TimerInstance->ArrayDef .*---------------------------------------------------------------------* :xmp tab=0. FunctionLocalInst->TimerInstance->ArrayDef> module ModuleA { control { timer MyTimer1[Nonexi07]; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->FunctionLocalInst->TimerInstance->ArrayDef->Range (upper bound) .*---------------------------------------------------------------------* :xmp tab=0. FunctionLocalInst->TimerInstance->ArrayDef->Range (upper bound)> module ModuleA { control { timer MyTimer1[666..Nonexi07]; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->FunctionLocalInst->TimerInstance->ArrayDef->Range (lower bound) .*---------------------------------------------------------------------* :xmp tab=0. FunctionLocalInst->TimerInstance->ArrayDef->Range (lower bound)> module ModuleA { control { timer MyTimer1[Nonexi07..666]; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->FunctionLocalInst->TimerInstance->ArrayDef->Multidimensional .*---------------------------------------------------------------------* :xmp tab=0. FunctionLocalInst->TimerInstance->ArrayDef->Multidimensional> module ModuleA { control { timer MyTimer1[1+10][113+333][Nonexi10]; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->FunctionLocalInst->TimerInstance->RVALUE .*---------------------------------------------------------------------* :xmp tab=0. FunctionLocalInst->TimerInstance->RVALUE> module ModuleA { control { timer MyTimer4 := Nonexi11; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->TimerStatements: StartTimerStatement->TimerRef .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->TimerStatements: StartTimerStatement->TimerRef> module ModuleA { control { Nonexi01.start(1.0); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->TimerStatements: StartTimerStatement->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->TimerStatements: StartTimerStatement->ArrayOrBitRef> module ModuleA { control { timer MyTimer2[10]; MyTimer2[Nonexi02 + 1].start(1.0); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->TimerStatements: StartTimerStatement->ArrayOrBitRef->Multidimensional .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->TimerStatements: StartTimerStatement->ArrayOrBitRef->Multidimensional> module ModuleA { control { // NOTE: pending CR for multidimensional timers, not yet supported timer MyTimer2[10][10][10000]; MyTimer2[2][2][Nonexi02 + 1].start(1.0); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->TimerStatements: StartTimerStatement->TimerValue .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->TimerStatements: StartTimerStatement->TimerValue> module ModuleA { control { timer MyTimer1; MyTimer1.start(2.0 + Nonexi04); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->TimerStatements: StopTimerStatement->TimerRef .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->TimerStatements: StopTimerStatement->TimerRef> module ModuleA { control { Nonexi01.stop; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->TimerStatements: StopTimerStatement->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->TimerStatements: StopTimerStatement->ArrayOrBitRef> module ModuleA { control { timer MyTimer2[10]; MyTimer2[1].start(1.0); MyTimer2[Nonexi02 + 1].stop; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->TimerStatements: StopTimerStatement->ArrayOrBitRef->Multidimensional .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->TimerStatements: StopTimerStatement->ArrayOrBitRef->Multidimensional> module ModuleA { control { // NOTE: pending CR for multidimensional timers, not yet supported timer MyTimer2[10][10][10000]; MyTimer2[2][2][1].start(1.0); MyTimer2[2][2][Nonexi02 + 1].stop; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->TimerStatements: TimeoutStatement->TimerRef .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->TimerStatements: TimeoutStatement->TimerRef> module ModuleA { control { Nonexi01.timeout; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->TimerStatements: TimeoutStatement->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->TimerStatements: TimeoutStatement->ArrayOrBitRef> module ModuleA { control { timer MyTimer2[10]; MyTimer2[1].start(1.0); MyTimer2[Nonexi02 + 1].timeout; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->TimerStatements: TimeoutStatement->ArrayOrBitRef->Multidimensional .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->TimerStatements: TimeoutStatement->ArrayOrBitRef->Multidimensional> module ModuleA { control { // NOTE: pending CR for multidimensional timers, not yet supported timer MyTimer2[10][10][10000]; MyTimer2[2][2][1].start(10.0); MyTimer2[2][2][Nonexi02 + 1].timeout; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->BasicStatements->LogStatement .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->BasicStatements->LogStatement> module ModuleA { control { // TR 614: expression in log statement log("McHalls was here...", 333 + Nonexi01); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->BasicStatements->ForLoop .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->BasicStatements->ForLoop> module ModuleA { control { for (var Nonexi02 MyVar1 := 1, MyVar2; true; MyVar1:=MyVar1) {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->BasicStatements->WhileLoop .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->BasicStatements->WhileLoop> module ModuleA { control { while ( 2 + Nonexi03 > 2 + Nonexi04 ) {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->BasicStatements->DoWhileLoop .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->BasicStatements->DoWhileLoop> module ModuleA { control { do {} while ( 2 + Nonexi05 > 2 + Nonexi06 ); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->BasicStatements->ConditionalConstruct .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->BasicStatements->ConditionalConstruct> module ModuleA { control { if (2 + Nonexi07 > 2 + Nonexi08) {} else if (2 + Nonexi09 > 2 + Nonexi10) {} else {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->BehaviourStatements: ReturnStatement .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->BehaviourStatements: ReturnStatement> module ModuleA { function MyFunc1() return integer { return 333 + Nonexi01; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->BehaviourStatements: DeactivateStatement .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->BehaviourStatements: DeactivateStatement> module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort } testcase MyTC1() runs on MyComp { deactivate(Nonexi02); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->BehaviourStatements: GotoStatement .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->BehaviourStatements: GotoStatement> module ModuleA { control { // already covered in expressions: // - TestcaseInstance // - FunctionInstance // AltConstruct already covered in 'AltstepDef' // InterleavedConstruct is not supported yet // GotoStatement goto Nonexi03; // ActivateOp already covered } } (?im)\berror\b.+?Label.+?Nonexi.+?used.+?not.+?defined (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::ModuleControlPart->ControlStatement->SUTStatements .*---------------------------------------------------------------------* :xmp tab=0. ControlStatement->SUTStatements> module ModuleA { control { // TR 614: expression in log statement action("McHalls was here...", 333 + Nonexi01); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->PortSpec->ComponentRef->ComponentIdentifier .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->PortSpec->ComponentRef->ComponentIdentifier> module ModuleA { type record MyType { MyComp field1 } type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort; port MyPortType MyPort2[10]; } function MyFunc1() runs on MyComp { var MyType MyVar; map(Nonexi01:MyPort, system:MyPort); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->PortSpec->ComponentRef->VariableRef .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->PortSpec->ComponentRef->VariableRef> module ModuleA { type record MyType { MyComp field1 } type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort; port MyPortType MyPort2[10]; } function MyFunc1() runs on MyComp { var MyType MyVar; map(MyVar.Nonexi03:MyPort, system:MyPort); } } (?im)\berror\b.+?reference.+?to.+?non.*?existent.+?field.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->PortSpec->ComponentRef->FunctionInstance .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->PortSpec->ComponentRef->FunctionInstance> module ModuleA { type record MyType { MyComp field1 } type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort; port MyPortType MyPort2[10]; } function MyFunc1() runs on MyComp { var MyType MyVar; map(Nonexi04():MyPort, system:MyPort); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->PortSpec->ComponentRef->Port->PortIdentifier .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->PortSpec->ComponentRef->Port->PortIdentifier> module ModuleA { type record MyType { MyComp field1 } type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort; port MyPortType MyPort2[10]; } function MyFunc1() runs on MyComp { var MyType MyVar := { field1 := MyComp.create }; map(MyVar.field1:Nonexi05, system:MyPort); } } (?im)\berror\b.+?component.+?does.+?not.+?have.+?port.+?nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->PortSpec->ComponentRef->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->PortSpec->ComponentRef->Port->ArrayOrBitRef> module ModuleA { type record MyType { MyComp field1 } type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort; port MyPortType MyPort2[10]; } function MyFunc1() runs on MyComp { var MyType MyVar; map(MyVar.field1:MyPort2[Nonexi06], system:MyPort); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->ConnectStatement .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->ConnectStatement> module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort } function MyFunc2() runs on MyComp {} // FunctionLocalDef and FunctionLocalInst are already covered function MyFunc1() runs on MyComp { var MyComp MyCompInst1 := MyComp.create; var MyComp MyCompInst2[10]; // ConnectStatement // Nonexi02 shall not be reported as the component type is not known connect(Nonexi01():Nonexi02, MyCompInst2[Nonexi03]:MyPort); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->MapStatement .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->MapStatement> module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort } function MyFunc2() runs on MyComp {} function MyFunc1() runs on MyComp { var MyComp MyCompInst1 := MyComp.create; var MyComp MyCompInst2[10]; // MapStatement already covered in 'PortSpec' // Only Nonexi04 shall be reported. Nonexi05 shall not be as the component type is not // yet known; Nonexi06 shall not be as system value is not yet known. map(Nonexi04():Nonexi05, system:Nonexi06); } } (?im)\berror\b.+?no.+?definition.+?Nonexi04 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->DisconnectStatement .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->DisconnectStatement> module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort } function MyFunc2() runs on MyComp {} function MyFunc1() runs on MyComp { var MyComp MyCompInst1 := MyComp.create; var MyComp MyCompInst2[10]; // Nonexi08 shall not be reported, component is not known disconnect(Nonexi07():Nonexi08, MyCompInst2[Nonexi09]:MyPort); } } (?im)\berror\b.+?no.+?definition.+?Nonexi07 (?im)\berror\b.+?no.+?definition.+?Nonexi09 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->UnmapStatement .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->UnmapStatement> module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort } function MyFunc2() runs on MyComp {} function MyFunc1() runs on MyComp { var MyComp MyCompInst1 := MyComp.create; var MyComp MyCompInst2[10]; // Nonexi11 shall not be reported, component is not known // Nonexi12 shall not be reported, system value is not yet known unmap(Nonexi10():Nonexi11, system:Nonexi12); } } (?im)\berror\b.+?no.+?definition.+?Nonexi10 (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->DoneStatement .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->DoneStatement> module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort } function MyFunc2() runs on MyComp {} function MyFunc1() runs on MyComp { var MyComp MyCompInst1 := MyComp.create; var MyComp MyCompInst2[10]; Nonexi13.done; Nonexi14().done; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->StartTCStatement .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->StartTCStatement> module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort } function MyFunc2() runs on MyComp {} function MyFunc1() runs on MyComp { var MyComp MyCompInst1 := MyComp.create; var MyComp MyCompInst2[10]; Nonexi15.start(MyFunc2()); Nonexi16().start(MyFunc2()); MyCompInst1.start(Nonexi17()); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->ConfigurationStatements->StopTCStatement .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->ConfigurationStatements->StopTCStatement> module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort } function MyFunc2() runs on MyComp {} function MyFunc1() runs on MyComp { var MyComp MyCompInst1 := MyComp.create; var MyComp MyCompInst2[10]; Nonexi18.stop; Nonexi19().stop; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->SendStatement->Port->Identifier .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->SendStatement->Port->Identifier> // The followings are already covered: // receive, trigger, getcall, getreply, catch, check module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort; port MyPortType MyPort2[10]; } function MyFunc1() runs on MyComp { Nonexi01.send(10); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->SendStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->SendStatement->Port->ArrayOrBitRef> // The followings are already covered: // receive, trigger, getcall, getreply, catch, check module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort; port MyPortType MyPort2[10]; } function MyFunc1() runs on MyComp { MyPort2[333+Nonexi02].send(10+0); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->SendStatement->PortSendOp .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->SendStatement->PortSendOp> // The followings are already covered: // receive, trigger, getcall, getreply, catch, check module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort; port MyPortType MyPort2[10]; } function MyFunc1() runs on MyComp { // others are covered in TemplateInstance MyPort.send(10+Nonexi03); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->SendStatement->PortSendOp->ToClause1 .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->SendStatement->PortSendOp->ToClause1> // The followings are already covered: // receive, trigger, getcall, getreply, catch, check module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort; port MyPortType MyPort2[10]; } function MyFunc1() runs on MyComp { MyPort.send(10) to Nonexi04; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->SendStatement->PortSendOp->ToClause2 .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->SendStatement->PortSendOp->ToClause2> // The followings are already covered: // receive, trigger, getcall, getreply, catch, check module ModuleA { type port MyPortType message{ inout integer; } type component MyComp { port MyPortType MyPort; port MyPortType MyPort2[10]; } function MyFunc1() runs on MyComp { MyPort.send(10) to Nonexi05(); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->CallStatement->Port->Identifier .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->CallStatement->Port->Identifier> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc2() runs on MyComp { // CallStatement->Port->Identifier // TR 618: calling a noblocking signature without reply-part causes parse error Nonexi06.call(MyTemplateSig(1)); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->CallStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->CallStatement->Port->ArrayOrBitRef> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc2() runs on MyComp { MyPort4[333+Nonexi07].call(MyTemplateSig(1)); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->CallStatement->PortCallOp->CallParameters .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->CallStatement->PortCallOp->CallParameters> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc2() runs on MyComp { // others are covered in TemplateInstance // TR 681: unnecessary checks for signatures in call operation in case of fault MyPort3.call(Nonexi10); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->CallStatement->PortCallOp->ToClause1 .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->CallStatement->PortCallOp->ToClause1> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc2() runs on MyComp { MyPort3.call(MyTemplateSig(1)) to Nonexi11; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->CallStatement->PortCallOp->ToClause2 .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->CallStatement->PortCallOp->ToClause2> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc2() runs on MyComp { MyPort3.call(MyTemplateSig(1)) to Nonexi12(); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->ReplyStatement->Port->Identifier .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->ReplyStatement->Port->Identifier> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc3() runs on MyComp { Nonexi13.reply(MyTemplateSig2(1)); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->ReplyStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->ReplyStatement->Port->ArrayOrBitRef> module ModuleA { type port MyPortType2 procedure { inout MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc3() runs on MyComp { MyPort4[333+Nonexi14].reply(MyTemplateSig2(1)); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->ReplyStatement->PortReplyOp->CallParameters .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->ReplyStatement->PortReplyOp->CallParameters> module ModuleA { type port MyPortType2 procedure { inout MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc3() runs on MyComp { MyPort3.reply(Nonexi16); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->ReplyStatement->PortReplyOp->ReplyValue .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->ReplyStatement->PortReplyOp->ReplyValue> module ModuleA { type port MyPortType2 procedure { inout MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } template MySignature_return MyTemplateSig3(in integer Par) := { Par1 := Par } function MyFunc3() runs on MyComp { MyPort3.reply(MyTemplateSig3(1) value 333-Nonexi17); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->ReplyStatement->PortReplyOp->ToClause1 .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->ReplyStatement->PortReplyOp->ToClause1> module ModuleA { type port MyPortType2 procedure { inout MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc3() runs on MyComp { MyPort3.reply(MyTemplateSig2(1)) to Nonexi18; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->ReplyStatement->PortReplyOp->ToClause2 .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->ReplyStatement->PortReplyOp->ToClause2> module ModuleA { type port MyPortType2 procedure { inout MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc3() runs on MyComp { MyPort3.reply(MyTemplateSig2(1)) to Nonexi19(); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->RaiseStatement->Port->Identifier .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->RaiseStatement->Port->Identifier> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc4() runs on MyComp { Nonexi20.raise(MySignature_exception, 10); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->RaiseStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->RaiseStatement->Port->ArrayOrBitRef> module ModuleA { type port MyPortType2 procedure { inout MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc4() runs on MyComp { MyPort4[333+Nonexi21].raise(MySignature_exception, 10); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->RaiseStatement->Port->Signature .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->RaiseStatement->Port->Signature> module ModuleA { type port MyPortType2 procedure { inout MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc4() runs on MyComp { MyPort3.raise(Nonexi22, 10); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->RaiseStatement->Port->TemplateInstance .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->RaiseStatement->Port->TemplateInstance> module ModuleA { type port MyPortType2 procedure { inout MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc4() runs on MyComp { MyPort3.raise(MySignature_exception, 10 - Nonexi26); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->RaiseStatement->Port->ToClause1 .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->RaiseStatement->Port->ToClause1> module ModuleA { type port MyPortType2 procedure { inout MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc4() runs on MyComp { MyPort3.raise(MySignature_exception, 10) to Nonexi27; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->RaiseStatement->Port->ToClause2 .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->RaiseStatement->Port->ToClause2> module ModuleA { type port MyPortType2 procedure { inout MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc4() runs on MyComp { MyPort3.raise(MySignature_exception, 10) to Nonexi28(); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->ClearStatement->Port->Identifier .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->ClearStatement->Port->Identifier> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc5() runs on MyComp { Nonexi29.clear; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->ClearStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->ClearStatement->Port->ArrayOrBitRef> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc5() runs on MyComp { MyPort4[333+Nonexi30].clear; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->StartStatement->Port->Identifier .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->StartStatement->Port->Identifier> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc6() runs on MyComp { Nonexi31.start; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->StartStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->StartStatement->Port->ArrayOrBitRef> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc5() runs on MyComp { MyPort4[333+Nonexi32].start; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->StopStatement->Port->Identifier .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->StopStatement->Port->Identifier> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc6() runs on MyComp { Nonexi31.stop; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->CommunicationStatements->StopStatement->Port->ArrayOrBitRef .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->CommunicationStatements->StopStatement->Port->ArrayOrBitRef> module ModuleA { type port MyPortType2 procedure { out MySignature_noblock, MySignature_block, MySignature_return, MySignature_exception } type component MyComp { port MyPortType2 MyPort3; port MyPortType2 MyPort4[10] } signature MySignature_block(in integer Par1); signature MySignature_noblock(in integer Par1) noblock; signature MySignature_return(in integer Par1) return integer; signature MySignature_exception(in integer Par1) return integer exception (integer, float); template MySignature_noblock MyTemplateSig(in integer Par) := { Par1:=Par } template MySignature_block MyTemplateSig2(in integer Par) := { - } function MyFunc5() runs on MyComp { MyPort4[333+Nonexi32].stop; } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->VerdictStatements->VariableRef .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->VerdictStatements->VariableRef> module ModuleA { type component MyComp {} function MyFunc1() runs on MyComp { setverdict(Nonexi01); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::StatementBlock->FunctionStatement->VerdictStatements->FunctionRef .*---------------------------------------------------------------------* :xmp tab=0. FunctionStatement->VerdictStatements->FunctionRef> module ModuleA { type component MyComp {} function MyFunc1() runs on MyComp { setverdict(Nonexi02()); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?is)\berror: (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->ModuleparDef .*---------------------------------------------------------------------* :xmp tab=0. ModuleparDef> module ModuleA { // ModuleparDef modulepar { integer par1 := 10 } with {variant (Nonexi07) ""} } (?is)\berror: (?im)\bwarning\b (?is)\berror: :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->ImportDef .*---------------------------------------------------------------------* :xmp tab=0. ImportDef> module ModuleB { type integer MyINT; } module ModuleA { import from ModuleB all with {variant (Nonexi12) ""}; } (?is)\berror: (?im)\bwarning\b (?is)\berror: :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->DefOrFieldRef->DefinitionRef->Identifier .*---------------------------------------------------------------------* :xmp tab=0. DefOrFieldRef->DefinitionRef->Identifier> module ModuleB { type integer MyINT; } module ModuleA { type record MyType1 { integer field1 } with { variant (Nonexi01, Nonexi02) "" } } (?im)\berror\b.+Invalid field qualifier (?im)\bwarning\b (?is)\berror: :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->DefOrFieldRef->DefinitionRef->FullGroupIdentifier .*---------------------------------------------------------------------* :xmp tab=0. DefOrFieldRef->DefinitionRef->FullGroupIdentifier> module ModuleB { type integer MyINT; } module ModuleA { // TR 622: FullGroupIdentifier causes parse error type record MyType2 { integer field1 } with { variant (Nonexi03.Nonexi04) "" } // DefOrFieldRef->FieldReference->ArrayOrBitRef not yet supported // DefOrFieldRef->AllRef not yet supported } (?im)\berror\b.+Invalid field qualifier (?im)\bwarning\b (?is)\berror: :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->ConstDef .*---------------------------------------------------------------------* :xmp tab=0. ConstDef> module ModuleB { type integer MyINT; } module ModuleA { const integer MyConst := 10 with {variant (Nonexi05) ""}; } (?im)\berror\b.+field qualifiers are only allowed for :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->ExtConstDef .*---------------------------------------------------------------------* :xmp tab=0. ExtConstDef> module ModuleB { type integer MyINT; } module ModuleA { external const integer MyExtConst with {variant (Nonexi14) ""}; } (?im)\berror\b.+field qualifiers are only allowed for :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->TemplateDef .*---------------------------------------------------------------------* :xmp tab=0. TemplateDef> module ModuleB { type integer MyINT; } module ModuleA { template integer MyTemplate := 10 with {variant (Nonexi06) ""}; } (?im)\berror\b.+field qualifiers are only allowed for :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->FunctionDef .*---------------------------------------------------------------------* :xmp tab=0. FunctionDef> module ModuleB { type integer MyINT; } module ModuleA { function MyFunc() {} with {variant (Nonexi08) ""} } (?im)\berror\b.+field qualifiers are only allowed for :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->ExtFunctionDef .*---------------------------------------------------------------------* :xmp tab=0. ExtFunctionDef> module ModuleB { type integer MyINT; } module ModuleA { external function MyExtFunc() with {variant (Nonexi13) ""} } (?im)\berror\b.+field qualifiers are only allowed for :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->SignatureDef .*---------------------------------------------------------------------* :xmp tab=0. SignatureDef> module ModuleB { type integer MyINT; } module ModuleA { signature MySignature() with {variant (Nonexi09) ""} } (?im)\berror\b.+field qualifiers are only allowed for :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->TestcaseDef .*---------------------------------------------------------------------* :xmp tab=0. TestcaseDef> module ModuleB { type integer MyINT; } module ModuleA { type port MyPortType message {inout integer} type component MyComp { port MyPortType MyPort } testcase MyTC() runs on MyComp {} with {variant (Nonexi10) ""} } (?im)\berror\b.+field qualifiers are only allowed for :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->AltstepDef .*---------------------------------------------------------------------* :xmp tab=0. AltstepDef> module ModuleB { type integer MyINT; } module ModuleA { type port MyPortType message {inout integer} type component MyComp { port MyPortType MyPort } altstep MyAltstep() runs on MyComp { [] MyPort.receive {} } with {variant (Nonexi11) ""} } (?im)\berror\b.+field qualifiers are only allowed for :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->GroupDef test 1 .*---------------------------------------------------------------------* :xmp tab=0. GroupDef test 1> module ModuleA { group grp1 { type integer int1; } with { variant (Nonexi14) ""; }; } (?im)\berror\b.+field qualifiers are only allowed for :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::WithStatement->GroupDef test 2 .*---------------------------------------------------------------------* :xmp tab=0. GroupDef test 2> module ModuleA { group grp1 { type integer int1; } with { variant (int1) ""; }; } (?im)\berror\b.+field qualifiers are only allowed for :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FunctionReference apply on nonexi .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { control { Nonexi.apply(); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FunctionReference refer to nonexi .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type function fn_type(); control { var fn_type f := refers(Nonexi); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FunctionReference derefer nonexi .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { control { execute(derefers(Nonexi)()); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::FunctionReference apply with Nonexi parameter .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type function fn_type(); function fn() { } control { var fn_type f := refers(fn); f.apply(Nonexi); } } (?im)\berror\b.+Too many parameters.+ (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Nonexi as non-mandatory function parameter .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { function f(in integer i := Nonexi){}; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Nonexi as non-mandatory function parameter 2 .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { function f(integer i:= 1,in integer j := Nonexi, integer k := 1){}; } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Nonexi as non-mandatory altstep parameter .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type port MyPortType message {inout integer} type component MyComp { port MyPortType MyPort } altstep MyAltstep(in integer i := Nonexi) runs on MyComp { [] MyPort.receive {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Nonexi as non-mandatory altstep parameter 2 .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type port MyPortType message {inout integer} type component MyComp { port MyPortType MyPort } altstep MyAltstep(integer i:= 1,in integer j := Nonexi, integer k := 1) runs on MyComp { [] MyPort.receive {} } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Nonexi as non-mandatory testcase parameter .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type port MyPortType message {inout integer} type component MyComp { port MyPortType MyPort } testcase MyTC(in integer i := Nonexi) runs on MyComp {} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Nonexi as non-mandatory testcase parameter 2 .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type port MyPortType message {inout integer} type component MyComp { port MyPortType MyPort } testcase MyTC(integer i:= 1,in integer j := Nonexi, integer k := 1) runs on MyComp {} } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Function call with nonexi non-mandatory parameter .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { function f(integer i:= 1,in integer j := 1, integer k := 1){}; control{ f(-,Nonexi,-); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Function call with nonexi non-mandatory parameter 2 .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { function f(integer i:= 1,in integer j := 1, integer k := 1){}; control{ f(-,Nonexi); } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h3.TTCN-3::Template parameterised with Nonexi non-mandatory parameter .*---------------------------------------------------------------------* :xmp tab=0. module ModuleA { type record rec_type { integer a, integer b } template rec_type MyTemplate(in integer x:= Nonexi, in integer y := Nonexi):= { a:=x, b:=y } } (?im)\berror\b.+?no.+?definition.+?Nonexi (?im)\bnotify\b.+?\bcode\b.+?\bnot\b.+?\bgenerated\b :exmp. .*---------------------------------------------------------------------* :h1.Abbreviations .*---------------------------------------------------------------------* :list. :li D='ASN.1'.Abstract Syntax Notation 1 :li D='EDML'.Ericsson Document Markup Language :li D='SA'.Semantic Analyser :li D='TTCN-3'.Test and Test Control Notation version 3 :elist. .*---------------------------------------------------------------------* :h1.References .*---------------------------------------------------------------------* :list. :li D='[1]'.3/ETH/RUS-2003:0087 Uen :nl.Requirement Specification for TITAN's TTCN-3 Semantic Analyser :li D='[2]'.1/174 02-FCPCA 101 42 Uen :nl.Statement of Compliance for TITAN project :li D='[3]'.ETSI ES 201 873-1, v3.0.0 Mockup v1 (2004-03): :nl.Testing and Test Control Notation version 3., :nl.Part 1: TTCN-3 Core Language :elist. .*---------------------------------------------------------------------* :h1.Terminology .*---------------------------------------------------------------------* :list. :li D='TITAN'.Ericsson's TTCN-3 Test Environment :elist. :etext.