CONTENTS

 1     Scope 
 2     References 
 3     Definitions and abbreviations        
        3.1     Definitions 
        3.2     Abbreviations        
 4     Introduction      
        4.0     General  
        4.1     The core language and presentation formats
        4.2     Unanimity of the specification         
        4.3     Conformance         
 5     Basic language elements   
        5.0     General  
        5.1     Ordering of language elements        
        5.2     Parameterization    
        5.3     Scope rules           
        5.4     Identifiers and keywords    
 6     Types and values 
        6.0     General  
        6.1     Basic types and values       
        6.2     Sub-typing of basic types   
        6.3     Structured types and values
        6.4     The Anytype          
        6.5     Arrays    
        6.6     Recursive types     
        6.7     Type compatibility 
 7     Modules    
        7.0     General  
        7.1     Naming of modules
        7.2     Module parameters
        7.3     Module definitions part      
        7.4     Module control part           
        7.5     Importing from modules     
 8     Test configurations           
        8.0     General  
        8.1     Port communication model 
        8.2     Restrictions on connections
        8.3     Abstract test system interface         
        8.4     Defining communication port types 
        8.5     Defining Component types 
        8.6     Addressing entities inside the SUT  
        8.7     Component references       
        8.8     Defining the test system interface    
 9     Declaring constants          
10     Declaring variables          
11     Declaring timers  
       11.0     General 
       11.1     Timers as parameters        
12     Declaring messages         
13     Declaring procedure signatures    
       13.0     General 
       13.1     Signatures for blocking and non-blocking communication   
       13.2     Parameters of procedure signatures           
       13.3     Value returning remote procedures
       13.4     Specifying exceptions        
14     Declaring templates         
       14.0     General 
       14.1     Declaring message templates         
       14.2     Declaring signature templates        
       14.3     Template matching mechanisms     
       14.4     Parameterization of templates        
       14.5     Passing templates as parameters    
       14.6     Modified templates           
       14.7     Changing template fields    
       14.8     Match operation   
       14.9     Valueof operation 
15     Operators 
       15.0     General 
       15.1     Arithmetic operators         
       15.2     String operators    
       15.3     Relational operators          
       15.4     Logical operators  
       15.5     Bitwise operators  
       15.6     Shift operators      
       15.7     Rotate operators   
16     Functions and altsteps     
       16.1     Functions  
       16.2     Altsteps 
       16.3     Functions and altsteps for different component types          
17     Test cases 
       17.0     General 
       17.1     Parameterization of test cases        
18     Overview of program statements and operations  
19     Basic program statements           
       19.0     General 
       19.1     Expressions          
       19.2     Assignments         
       19.3     The Log statement
       19.4     The Label statement          
       19.5     The Goto statement          
       19.6     The If-else statement         
       19.7     The For statement 
       19.8     The While statement         
       19.9    The Do-while statement    
      19.10     The Stop execution statement       
20     Behavioural program statements  
       20.0     General 
       20.1     Alternative behaviour        
       20.2     The Repeat statement       
       20.3     Interleaved behaviour        
       20.4     The Return statement        
21     Default handling  
       21.0     General 
       21.1     The default mechanism      
       21.2     Default references 
       21.3     The Activate operation      
       21.4     The Deactivate operation  
22     Configuration operations 
       22.0     General 
       22.1     The Create operation        
       22.2     The Connect and Map operations 
       22.3     The Disconnect and Unmap operations     
       22.4     The MTC, System and Self operations      
       22.5     The Start test component operation           
       22.6     The Stop test component operation           
       22.7     The Running operation      
       22.8     The Done operation          
       22.9     Using component arrays    
      22.10     Summary of the use of any and all with components          
23     Communication operations          
       23.0     General 
       23.1     General format of communication operations         
       23.2     Message-based communication     
       23.3     Procedure-based communication  
       23.4     The Check operation        
       23.5     Controlling communication ports   
       23.6     Use of Any and All with ports       
24     Timer operations 
       24.0     General 
       24.1     The Start timer operation  
       24.2     The Stop timer operation  
       24.3     The Read timer operation  
       24.4     The Running timer operation          
       24.5     The Timeout operation      
       24.6     Summary of use of Any and All with timers
25     Test verdict operations    
       25.0     General 
       25.1     Test case verdict   
       25.2     Verdict values and overwriting rules          
26     External actions  
27     Module control part        
       27.0     General 
       27.1     Execution of test cases      
       27.2     Termination of test cases   
       27.3     Controlling execution of test cases 
       27.4     Test case selection
       27.5     Use of timers in control     
28     Specifying attributes        
       28.0     General 
       28.1     Display attributes  
       28.2     Encoding of values
       28.3     Extension attributes           
       28.4     Scope of attributes
       28.5     Overwriting rules for attributes      
       28.6     Changing attributes of imported language elements 
Annex A – BNF and static semantics    
        A.1     TTCN-3 BNF      
Annex B – Matching incoming values    
        B.1     Template matching mechanisms     
Annex C – Pre-defined TTCN-3 functions    
        C.1     Integer to character           
        C.2     Character to integer          
        C.3     Integer to universal character         
        C.4     Universal character to integer        
        C.5     Bitstring to integer 
        C.6     Hexstring to integer           
        C.7     Octetstring to integer         
        C.8     Charstring to integer          
        C.9     Integer to bitstring 
       C.10     Integer to hexstring           
       C.11     Integer to octetstring        
       C.12     Integer to charstring         
       C.13     Length of string type         
       C.14     Number of elements in a structured type   
       C.15     The IsPresent function      
       C.16     The IsChosen function      
       C.17     The Regexp function        
       C.18     Bitstring to charstring        
       C.19     Hexstring to charstring      
       C.20     Octetstring to character string       
       C.21     Character string to octetstring       
       C.22     Bitstring to hexstring         
       C.23     Hexstring to octetstring     
       C.24     Bitstring to octetstring       
       C.25     Hexstring to bitstring        
       C.26     Octetstring to hexstring     
       C.27     Octetstring to bitstring      
       C.28     Integer to float     
       C.29     Float to integer     
       C.30     The random number generator function     
       C.31     The Substring function      
Annex D – Using other data types with TTCN-3    
        D.1     Using ASN.1 with TTCN-3          
Annex E (informative) – Library of useful types    
        E.1     Limitations 
        E.2     Useful TTCN-3 types        
Annex F (informative) – Bibliography    
Annex G (informative) – On the use of regular expressions and matching mechanisms in TTCN-3    
        G.1     Is a character following the symbol "" a metacharacter?      
        G.2     Does "*" match the shortest or the longest possible character sequence?    
        G.3     Do the metacharacters "?" and "*" match line terminators?  
        G.4     What is the behaviour of unescaped but "illegal" metacharacters? Does "ab]" match a-b-right-square-bracket?    
        G.5     If foo := "ab", does pattern "{foo}#(2)" match abb or abab?          
        G.6     How is "^" handled when it is not the first character of a group?     
        G.7     Are metacharacters allowed within a set preceded by a ""?
        G.8     Can sets be nested?          
        G.9     Can a reference expression be used inside a set?   
       G.10     How are "?" and "*" used in TTCN-3 regular expressions?