0
|
1 <!doctype html>
|
|
2
|
|
3 <title>CodeMirror: TTCN mode</title>
|
|
4 <meta charset="utf-8"/>
|
|
5 <link rel=stylesheet href="../../doc/docs.css">
|
|
6
|
|
7 <link rel="stylesheet" href="../../lib/codemirror.css">
|
|
8 <script src="../../lib/codemirror.js"></script>
|
|
9 <script src="../../addon/edit/matchbrackets.js"></script>
|
|
10 <script src="ttcn.js"></script>
|
|
11 <style>
|
|
12 .CodeMirror {
|
|
13 border-top: 1px solid black;
|
|
14 border-bottom: 1px solid black;
|
|
15 }
|
|
16 </style>
|
|
17 <div id=nav>
|
|
18 <a href="https://codemirror.net/5"><h1>CodeMirror</h1>
|
|
19 <img id=logo src="../../doc/logo.png" alt="">
|
|
20 </a>
|
|
21
|
|
22 <ul>
|
|
23 <li><a href="../../index.html">Home</a>
|
|
24 <li><a href="../../doc/manual.html">Manual</a>
|
|
25 <li><a href="https://github.com/codemirror/codemirror5">Code</a>
|
|
26 </ul>
|
|
27 <ul>
|
|
28 <li><a href="../index.html">Language modes</a>
|
|
29 <li><a class=active href="http://en.wikipedia.org/wiki/TTCN">TTCN</a>
|
|
30 </ul>
|
|
31 </div>
|
|
32 <article>
|
|
33 <h2>TTCN example</h2>
|
|
34 <div>
|
|
35 <textarea id="ttcn-code">
|
|
36 module Templates {
|
|
37 /* import types from ASN.1 */
|
|
38 import from Types language "ASN.1:1997" all;
|
|
39
|
|
40 /* During the conversion phase from ASN.1 to TTCN-3 */
|
|
41 /* - the minus sign (Message-Type) within the identifiers will be replaced by underscore (Message_Type)*/
|
|
42 /* - the ASN.1 identifiers matching a TTCN-3 keyword (objid) will be postfixed with an underscore (objid_)*/
|
|
43
|
|
44 // simple types
|
|
45
|
|
46 template SenderID localObjid := objid {itu_t(0) identified_organization(4) etsi(0)};
|
|
47
|
|
48 // complex types
|
|
49
|
|
50 /* ASN.1 Message-Type mapped to TTCN-3 Message_Type */
|
|
51 template Message receiveMsg(template (present) Message_Type p_messageType) := {
|
|
52 header := p_messageType,
|
|
53 body := ?
|
|
54 }
|
|
55
|
|
56 /* ASN.1 objid mapped to TTCN-3 objid_ */
|
|
57 template Message sendInviteMsg := {
|
|
58 header := inviteType,
|
|
59 body := {
|
|
60 /* optional fields may be assigned by omit or may be ignored/skipped */
|
|
61 description := "Invite Message",
|
|
62 data := 'FF'O,
|
|
63 objid_ := localObjid
|
|
64 }
|
|
65 }
|
|
66
|
|
67 template Message sendAcceptMsg modifies sendInviteMsg := {
|
|
68 header := acceptType,
|
|
69 body := {
|
|
70 description := "Accept Message"
|
|
71 }
|
|
72 };
|
|
73
|
|
74 template Message sendErrorMsg modifies sendInviteMsg := {
|
|
75 header := errorType,
|
|
76 body := {
|
|
77 description := "Error Message"
|
|
78 }
|
|
79 };
|
|
80
|
|
81 template Message expectedErrorMsg := {
|
|
82 header := errorType,
|
|
83 body := ?
|
|
84 };
|
|
85
|
|
86 template Message expectedInviteMsg modifies expectedErrorMsg := {
|
|
87 header := inviteType
|
|
88 };
|
|
89
|
|
90 template Message expectedAcceptMsg modifies expectedErrorMsg := {
|
|
91 header := acceptType
|
|
92 };
|
|
93
|
|
94 } with { encode "BER:1997" }
|
|
95 </textarea>
|
|
96 </div>
|
|
97
|
|
98 <script>
|
|
99 var ttcnEditor = CodeMirror.fromTextArea(document.getElementById("ttcn-code"), {
|
|
100 lineNumbers: true,
|
|
101 matchBrackets: true,
|
|
102 mode: "text/x-ttcn"
|
|
103 });
|
|
104 ttcnEditor.setSize(600, 860);
|
|
105 var mac = CodeMirror.keyMap.default == CodeMirror.keyMap.macDefault;
|
|
106 CodeMirror.keyMap.default[(mac ? "Cmd" : "Ctrl") + "-Space"] = "autocomplete";
|
|
107 </script>
|
|
108 <br/>
|
|
109 <p><strong>Language:</strong> Testing and Test Control Notation
|
|
110 (<a href="http://en.wikipedia.org/wiki/TTCN">TTCN</a>)
|
|
111 </p>
|
|
112 <p><strong>MIME types defined:</strong> <code>text/x-ttcn,
|
|
113 text/x-ttcn3, text/x-ttcnpp</code>.</p>
|
|
114 <br/>
|
|
115 <p>The development of this mode has been sponsored by <a href="http://www.ericsson.com/">Ericsson
|
|
116 </a>.</p>
|
|
117 <p>Coded by Asmelash Tsegay Gebretsadkan </p>
|
|
118 </article>
|
|
119
|