<!doctype html>
<title>CodeMirror: TTCN mode</title>
<meta charset="utf-8"/>
<link rel=stylesheet href="../../doc/docs.css">
<link rel="stylesheet" href="../../lib/codemirror.css">
<script src="../../lib/codemirror.js"></script>
<script src="ttcn.js"></script>
<style type="text/css">
.CodeMirror {
border-top: 1px solid black;
border-bottom: 1px solid black;
}
</style>
<div id=nav>
<a href="http://codemirror.net"><h1>CodeMirror</h1>
<img id=logo src="../../doc/logo.png">
</a>
<ul>
<li><a href="../../index.html">Home</a>
<li><a href="../../doc/manual.html">Manual</a>
<li><a href="https://github.com/codemirror/codemirror">Code</a>
</ul>
<ul>
<li><a href="../index.html">Language modes</a>
<li><a class=active href="http://en.wikipedia.org/wiki/TTCN">TTCN</a>
</ul>
</div>
<article>
<h2>TTCN example</h2>
<div>
<textarea id="ttcn-code">
module Templates {
/* import types from ASN.1 */
import from Types language "ASN.1:1997" all;
/* During the conversion phase from ASN.1 to TTCN-3 */
/* - the minus sign (Message-Type) within the identifiers will be replaced by underscore (Message_Type)*/
/* - the ASN.1 identifiers matching a TTCN-3 keyword (objid) will be postfixed with an underscore (objid_)*/
// simple types
template SenderID localObjid := objid {itu_t(0) identified_organization(4) etsi(0)};
// complex types
/* ASN.1 Message-Type mapped to TTCN-3 Message_Type */
template Message receiveMsg(template (present) Message_Type p_messageType) := {
header := p_messageType,
body := ?
}
/* ASN.1 objid mapped to TTCN-3 objid_ */
template Message sendInviteMsg := {
header := inviteType,
body := {
/* optional fields may be assigned by omit or may be ignored/skipped */
description := "Invite Message",
data := 'FF'O,
objid_ := localObjid
}
}
template Message sendAcceptMsg modifies sendInviteMsg := {
header := acceptType,
body := {
description := "Accept Message"
}
};
template Message sendErrorMsg modifies sendInviteMsg := {
header := errorType,
body := {
description := "Error Message"
}
};
template Message expectedErrorMsg := {
header := errorType,
body := ?
};
template Message expectedInviteMsg modifies expectedErrorMsg := {
header := inviteType
};
template Message expectedAcceptMsg modifies expectedErrorMsg := {
header := acceptType
};
} with { encode "BER:1997" }
</textarea>
</div>
<script>
var ttcnEditor = CodeMirror.fromTextArea(document.getElementById("ttcn-code"), {
lineNumbers: true,
matchBrackets: true,
mode: "text/x-ttcn"
});
ttcnEditor.setSize(600, 860);
var mac = CodeMirror.keyMap.default == CodeMirror.keyMap.macDefault;
CodeMirror.keyMap.default[(mac ? "Cmd" : "Ctrl") + "-Space"] = "autocomplete";
</script>
<br/>
<p><strong>Language:</strong> Testing and Test Control Notation
(<a href="http://en.wikipedia.org/wiki/TTCN">TTCN</a>)
</p>
<p><strong>MIME types defined:</strong> <code>text/x-ttcn,
text/x-ttcn3, text/x-ttcnpp</code>.</p>
<br/>
<p>The development of this mode has been sponsored by <a href="http://www.ericsson.com/">Ericsson
</a>.</p>
<p>Coded by Asmelash Tsegay Gebretsadkan </p>
</article>