Index: trunk/t3d/.classpath
===================================================================
--- trunk/t3d/.classpath	(revision 7)
+++ trunk/t3d/.classpath	(revision 7)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="lib" path="lib/org.eclipse.core.resources_3.4.0.v20080604-1400.jar"/>
+	<classpathentry kind="lib" path="lib/org.eclipse.core.runtime_3.4.0.v20080512.jar"/>
+	<classpathentry kind="lib" path="lib/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar"/>
+	<classpathentry kind="lib" path="lib/com.yourkit.javaprofiler.controller_7.0.4.jar"/>
+	<classpathentry kind="lib" path="lib/org.eclipse.osgi_3.4.0.v20080605-1900.jar"/>
+	<classpathentry kind="lib" path="lib/stringtemplate.jar"/>
+	<classpathentry kind="lib" path="lib/de.ugoe.cs.swe.trex.antlr_2.7.6.jar"/>
+	<classpathentry kind="lib" path="lib/saxon9-dom.jar"/>
+	<classpathentry kind="lib" path="lib/saxon9-dom4j.jar"/>
+	<classpathentry kind="lib" path="lib/saxon9-jdom.jar"/>
+	<classpathentry kind="lib" path="lib/saxon9-s9api.jar"/>
+	<classpathentry kind="lib" path="lib/saxon9-sql.jar"/>
+	<classpathentry kind="lib" path="lib/saxon9-xom.jar"/>
+	<classpathentry kind="lib" path="lib/saxon9-xpath.jar"/>
+	<classpathentry kind="lib" path="lib/saxon9-xqj.jar"/>
+	<classpathentry kind="lib" path="lib/saxon9.jar"/>
+	<classpathentry kind="lib" path="lib/commons-lang-2.4.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/de.ugoe.cs.swe.trex.core"/>
+	<classpathentry kind="lib" path="lib/xpp3_min-1.1.4c.jar"/>
+	<classpathentry kind="lib" path="lib/xstream-1.3.1.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/org.etsi.common"/>
+	<classpathentry kind="lib" path="lib/org.etsi.common.jar"/>
+	<classpathentry kind="lib" path="lib/commons-cli-1.2.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
Index: trunk/t3d/.project
===================================================================
--- trunk/t3d/.project	(revision 7)
+++ trunk/t3d/.project	(revision 7)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>t3d</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: trunk/t3d/build.xml
===================================================================
--- trunk/t3d/build.xml	(revision 7)
+++ trunk/t3d/build.xml	(revision 7)
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<project name="test" default="compile" basedir=".">
+
+    <property name="src" value="src"/>
+    <property name="bin" value="bin"/>
+    <property name="lib" value="lib"/>
+    <property name="dist" value="dist"/>
+    <property name="antlib" value="antlib"/>
+    <property name="nsis" value="nsis"/>
+    <property name="cp" value="${lib}/fop.jar:${lib}/commons-lang-2.4.jar:${lib}/com.yourkit.javaprofiler.controller_7.0.4.jar:${lib}/de.ugoe.cs.swe.trex.antlr_2.7.6.jar:${lib}/org.eclipse.core.resources_3.4.0.v20080604-1400.jar:${lib}/org.eclipse.core.runtime_3.4.0.v20080512.jar:${lib}/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar:${lib}/org.eclipse.osgi_3.4.0.v20080605-1900.jar:${lib}/stringtemplate.jar:${lib}/xstream-1.3.1.jar:${lib}/xpp3_min-1.1.4c.jar:${lib}/commons-cli-1.2.jar:${lib}/org.etsi.common.jar:${lib}/de.ugoe.cs.swe.trex.core_0.6.0.200810271154.jar"/>
+
+    <taskdef name="nsis" classname="net.sf.nsisant.Task">
+        <classpath location="${antlib}/nsisant-1.2.jar"/>
+    </taskdef>
+
+	
+	<target name="init">
+        <mkdir dir="${bin}"/>
+    </target>
+
+   	<target name="compile" depends="init">
+        <javac srcdir="${src}" destdir="${bin}" classpath="${cp}"/>
+    </target>
+
+    <target name="clean" description="Removes previous build">
+      <delete includeEmptyDirs="true">
+        <fileset dir="${bin}"/>
+      </delete>
+    </target>
+
+	<target name="make-dist" depends="compile" description="Creates an T3D distribution directory">
+        <echo>Building T3D Distribution in ${dist}...</echo>
+        <delete includeEmptyDirs="true">
+            <fileset dir="${dist}"/>
+        </delete>
+        <jar destfile="${lib}/t3d.jar" basedir="${bin}/"/> 
+        <mkdir dir="${dist}"/>
+        <mkdir dir="${dist}/lib"/>
+		<copy file="t3d" tofile="${dist}/t3d"/>
+		<copy file="t3d.bat" tofile="${dist}/t3d.bat"/>
+        <copy todir="${dist}/lib">
+        	<fileset dir="${lib}"/>
+        </copy>
+    </target>
+	
+    <target name="nsis" depends="make-dist" description="Creates an NSIS Installer from the dist directory">
+        <nsis script="${nsis}/t3d.nsi" verbosity="4" out="${nsis}/build.log" noconfig="yes">
+            <define name="VERSION" value="2.1"/>
+            <scriptcmd cmd="AutoCloseWindow true"/>
+        </nsis>
+    </target>
+	
+	
+	
+</project>
Index: trunk/t3d/css/doc.css
===================================================================
--- trunk/t3d/css/doc.css	(revision 7)
+++ trunk/t3d/css/doc.css	(revision 7)
@@ -0,0 +1,374 @@
+/*
+Navigation bar:
+	div_views: contains list of all views and possible toggling options
+	div_modules: contains list of TTCN3 modules
+	div_index: contains list of TTCN3 elements
+	
+p_header: contains path navigation
+
+div_content: contains page content
+	div_element: contains source code of element in Main View
+	div_comment: contains information from T3D comments
+	div_statistics: contains statistics in index.html
+	div_import: contains import table in Import View
+	div_mp: contains tables in ModuleParameter/Testcase View
+*/
+@media screen{
+body{
+	background:#FFFFFF;
+	font-family: Arial, Helvetica;
+	color:#000000;
+	margin:0;
+	border:0;
+	padding:0;
+	height:100%; 
+	max-height:100%;
+	overflow: auto; 
+}
+
+#div_modules, #div_index, #div_content{
+	overflow:auto;
+}
+
+#div_views, #div_index, #div_modules{
+	background-color:#F3F3E7 !important;
+	padding-left:10px;
+	font-size:12px;
+}
+
+#div_element, #div_comment, #div_import, #div_mp, #div_statistics{
+	font-size:12px;
+}
+
+#div_content{
+  border:1px solid #000000;
+  background-color:#FFFFFF;
+  position:fixed; 
+  top:60px;
+  left:25%;
+  right:1%;
+  bottom:40px; 
+  overflow:auto;
+  padding:2px;
+}
+
+
+#div_import, #div_mp, #div_statistics, #div_comment, #div_element, #div_statistics{
+	border-top:1px solid #000000;
+	border-bottom:1px solid #000000;
+}
+
+#div_import, #div_mp, #div_statistics{
+  background-color:#F3F3E7 !important;
+}
+
+#div_views{
+  border:1px solid #000000;
+  position:fixed; 
+  top:10px;
+  left:1%;
+  bottom:40px;
+  width:22%; 
+  overflow:auto; 
+
+}
+
+#div_modules{
+  border:1px solid #000000;
+  position:fixed; 
+  top:100px;
+  left:1%;
+  bottom:60%; 
+  width:22%; 
+  overflow:auto; 
+}
+
+#div_index{
+  border:1px solid #000000;
+  position:fixed; 
+  top:40%;
+  left:1%;
+  bottom:40px;
+  width:22%; 
+  overflow:auto;
+}
+
+#div_comment, #div_element, #div_statistics{
+	background-color:#F3F3E7;
+	padding:15px;
+	padding-top:0px;
+	padding-bottom:0px;
+	margin-bottom:20px;
+}
+
+#p_header a {
+	color:#AAA;
+}
+
+#p_header a:hover {
+	color:#FFF;
+}
+
+#p_t3dversion{
+	right:1%;
+	position:absolute;
+	bottom:1px;
+	text-align:right;
+	font-size:10px;
+}
+
+#path{
+	font-size:10px;
+}
+
+#p_header{
+  border:1px solid #000000;
+  font-size:15px;
+  position:absolute; 
+  top:10px; 
+  left:25%; 
+  right:1%; 
+  height:30px; 
+  overflow:hidden;
+  margin:0px;
+  padding:10px;
+  background:#53829d;
+  color:#FFFFFF;
+}
+}
+/* Not YET Used */
+#header {
+  position:absolute; 
+  top:0; 
+  left:0; 
+  width:100%;
+  height:120px;
+  overflow:auto;
+  background:#53829d;
+  color:#fff;
+  }
+
+/* Not YET Used */
+#footer {
+  position:absolute;
+  bottom:0;
+  left:0;
+  width:100%;
+  height:50px;
+  overflow:auto;
+  text-align:right;
+  background:#73a2bd;
+}
+
+.td_commenttype{
+	vertical-align:top;
+}
+
+table
+{
+	border-collapse:collapse;
+}
+
+table, td, th
+{
+	border:1px solid black;
+}
+
+#table_statistics{
+	margin-top:20px;
+	margin-left: auto;
+	margin-right: auto;
+}
+
+.import_grey a{
+	color:#777777 !important;
+}
+
+.td_table_statistics_left{
+	text-align:right;
+	padding-right:5px;
+}
+
+.td_table_statistics_mid{
+	text-align:center;
+	padding-right:5px;
+}
+
+.td_table_statistics_right{
+	text-align:left;
+	padding-left:5px;
+}
+
+#div_statistics th{
+	width:30%;
+	border-bottom:none !important;
+}
+
+#div_statistics td{
+	text-align:center;
+}
+
+.td_table_statistics_modules{
+	text-align:left !important;
+}
+
+#div_element{
+	font-family:monospace;
+}
+
+a:link, a:active, a:hover, a:visited{
+	color:#333377;
+	text-decoration:none;
+}
+
+#div_element a{
+	color:blue;
+}
+
+#div_element a:hover{
+	color:red;
+	text-decoration:underline;
+}
+
+#table_import td{
+	vertical-align:top;
+	width:33%;
+	padding-left:10px;
+}
+
+#table_import{
+	width:100%;
+}
+
+
+
+
+#table_import_modules{
+  border-left:1px solid #000000;
+  border-right:1px solid #000000;
+}
+
+.div_group_behaviour{
+	padding-left:50px;
+}
+
+.comment_line{
+	padding-right:50px;
+}
+
+.span_tagtype, .span_tagtypeOrig{
+	font-weight:bold;
+}
+
+.bold{
+	font-weight:bold;
+}
+
+#head_name{
+	color:#0000FF;
+	font-weight:bold;
+}
+
+.comment{
+	background-color:#DDDDDD;
+	padding:5px;
+}
+
+.elementName{
+	background-color:#BBBBFF;
+	padding-left:5px;
+}
+/*
+importedby, importedby_ind, selected, imports, imports: determine colors of modules in Import View
+*/
+.importedby{
+	color:#f86503 !important;
+}
+
+.importedby_ind{
+	color:#FF0000 !important;
+}
+
+.selected{
+	color:#000000 !important;
+}
+
+.imports{
+	color:#278e57 !important;
+}
+
+.imports_ind{
+	color:#00FF00 !important;
+}
+
+
+/* spans (toggle) notes */
+.span_showhidenote{
+	font-size: 5pt;
+	bottom: 0.5em;
+}
+
+.padding_left_10px{
+	padding-left:10px;
+	border:none !important;
+}
+
+.padding_left_10px tr td{
+	border:none !important;
+}
+
+
+.padding_left_20px{
+	padding-left:20px;
+}
+/* contains source code */
+pre {
+	white-space: pre-wrap;
+}
+/*spans highlighted TTCN3 keywords*/
+.syntax{
+	font-weight:bold !important;
+}
+
+@media print{
+
+body{
+	background:#FFFFFF;
+	font-family: Arial, Helvetica;
+	color:#000000;
+	margin:0;
+	border:0;
+	padding:0;
+	height:100%; 
+	max-height:100%;
+}
+
+div{
+  margin-left:6px !important;
+}
+#div_views, #div_index, #div_modules {
+	display:none !important;
+}
+
+#div_comment{
+	border-bottom:1px solid #000000;
+}
+
+p, pre, span, a, div{
+	color:#000000 !important;background-color:#FFFFFF !important;font-size:12px !important;
+}
+#div_content, #p_header{
+	left:0px !important; width:615px !important; border:none !important; height:auto !important;
+}
+
+#div_element pre{
+	border:0.5px dotted black !important;
+}
+
+
+#p_t3dversion{
+	text-align:right;
+	font-size:10px;
+}
+
+}
Index: trunk/t3d/js/doc.js
===================================================================
--- trunk/t3d/js/doc.js	(revision 7)
+++ trunk/t3d/js/doc.js	(revision 7)
@@ -0,0 +1,127 @@
+var toggled = false;
+
+var toggled1 = false;
+var toggled2 = false;
+
+function getElementsByClass(searchClass,node,tag) {
+	var classElements = new Array();
+	if ( node == null )
+		node = document;
+	if ( tag == null )
+		tag = '*';
+	var els = node.getElementsByTagName(tag);
+	var elsLen = els.length;
+	var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
+	for (i = 0, j = 0; i < elsLen; i++) {
+		if ( pattern.test(els[i].className) ) {
+			classElements[j] = els[i];
+			j++;
+		}
+	}
+	return classElements;
+}
+
+function toggleConstructbodies(hide){
+	if(hide == "true"){
+		var x;
+		var constructBodies = getElementsByClass("span_constructbody");
+		
+		if(toggled)
+			for(x in constructBodies)
+				constructBodies[x].style.display='';
+		else
+			for(x in constructBodies)
+				constructBodies[x].style.display='none';
+		toggled = !toggled;	
+	}
+	if (document.getElementById('modulebody') != null){
+		document.getElementById('modulebody').style.display='';
+	}
+}
+
+function toggleImportDetails(){
+		var x;
+		var constructBodies = getElementsByClass("span_importdetail");
+		
+		if(toggled)
+			for(x in constructBodies)
+				constructBodies[x].style.display='';
+		else
+			for(x in constructBodies)
+				constructBodies[x].style.display='none';
+		toggled = !toggled;
+}
+
+function togglePaths(hide){
+	if(hide == "true"){
+		var x;
+		var constructBodies = getElementsByClass("td_path");
+		
+		if(toggled)
+			for(x in constructBodies)
+				constructBodies[x].style.display='';
+		else
+			for(x in constructBodies)
+				constructBodies[x].style.display='none';
+		toggled = !toggled;	
+	}
+}
+
+function toggleHideNotes(){
+	var x;
+	var constructBodies = getElementsByClass("span_showhidenote");
+	for(x in constructBodies){
+		toggleElement(constructBodies[x]);
+	}
+}
+
+function toggleElement(element){
+	if(element.style.display=='none')
+		element.style.display='';
+	else
+		element.style.display='none';
+}
+
+function toggle(elementName){
+	var element = document.getElementById(elementName);
+	toggleElement(element);
+}
+
+function mp_init(listName){
+	if(listName != 'Group')
+//		if (document.getElementById('span_groups')!=null)
+			document.getElementById('span_groups').style.display='none';
+	if(listName != 'Testcase')
+//		if (document.getElementById('span_testcases'!=null))
+			document.getElementById('span_testcases').style.display='none';
+	if(listName != 'Module Parameter')
+//		if (document.getElementById('span_parameters')!=null)
+			document.getElementById('span_module parameters').style.display='none';
+}
+
+function init(listName){
+	toggleHideNotes();
+	if(listName != 'Group')
+		document.getElementById('span_groups').style.display='none';
+	if(listName != 'Function')
+		document.getElementById('span_functions').style.display='none';
+	if(listName != 'Type')
+		document.getElementById('span_types').style.display='none';
+	if(listName != 'Signature')
+		document.getElementById('span_signatures').style.display='none';
+	if(listName != 'Testcase')
+		document.getElementById('span_testcases').style.display='none';
+	if(listName != 'Altstep')
+		document.getElementById('span_altsteps').style.display='none';
+	if(listName != 'Template')
+		document.getElementById('span_templates').style.display='none';
+	if(listName != 'Constant')
+		document.getElementById('span_constants').style.display='none';
+	if(listName != 'Module Parameter')
+		document.getElementById('span_module parameters').style.display='none';
+	if(listName != 'External Function')
+		document.getElementById('span_external functions').style.display='none';
+	if(listName != 'External Constant')
+		document.getElementById('span_external constants').style.display='none';
+
+}
Index: trunk/t3d/lib/LICENSE.txt
===================================================================
--- trunk/t3d/lib/LICENSE.txt	(revision 7)
+++ trunk/t3d/lib/LICENSE.txt	(revision 7)
@@ -0,0 +1,202 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+
Index: trunk/t3d/lib/xpp3-license.txt
===================================================================
--- trunk/t3d/lib/xpp3-license.txt	(revision 7)
+++ trunk/t3d/lib/xpp3-license.txt	(revision 7)
@@ -0,0 +1,46 @@
+Indiana University Extreme! Lab Software License
+
+Version 1.1.1
+
+Copyright (c) 2002 Extreme! Lab, Indiana University. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+   this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the distribution.
+
+3. The end-user documentation included with the redistribution, if any,
+   must include the following acknowledgment:
+
+  "This product includes software developed by the Indiana University
+  Extreme! Lab (http://www.extreme.indiana.edu/)."
+
+Alternately, this acknowledgment may appear in the software itself,
+if and wherever such third-party acknowledgments normally appear.
+
+4. The names "Indiana Univeristy" and "Indiana Univeristy Extreme! Lab"
+must not be used to endorse or promote products derived from this
+software without prior written permission. For written permission,
+please contact http://www.extreme.indiana.edu/.
+
+5. Products derived from this software may not use "Indiana Univeristy"
+name nor may "Indiana Univeristy" appear in their name, without prior
+written permission of the Indiana University.
+
+THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHORS, COPYRIGHT HOLDERS OR ITS CONTRIBUTORS
+BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: trunk/t3d/lib/xstream-license.txt
===================================================================
--- trunk/t3d/lib/xstream-license.txt	(revision 7)
+++ trunk/t3d/lib/xstream-license.txt	(revision 7)
@@ -0,0 +1,28 @@
+(BSD Style License)
+
+Copyright (c) 2003-2006, Joe Walnes
+Copyright (c) 2006-2007, XStream Committers
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of
+conditions and the following disclaimer. Redistributions in binary form must reproduce
+the above copyright notice, this list of conditions and the following disclaimer in
+the documentation and/or other materials provided with the distribution.
+
+Neither the name of XStream nor the names of its contributors may be used to endorse
+or promote products derived from this software without specific prior written
+permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
+WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGE.
Index: trunk/t3d/nsis/EnvVarUpdate.nsh
===================================================================
--- trunk/t3d/nsis/EnvVarUpdate.nsh	(revision 7)
+++ trunk/t3d/nsis/EnvVarUpdate.nsh	(revision 7)
@@ -0,0 +1,327 @@
+/**
+ *  EnvVarUpdate.nsh
+ *    : Environmental Variables: append, prepend, and remove entries
+ *
+ *     WARNING: If you use StrFunc.nsh header then include it before this file
+ *              with all required definitions. This is to avoid conflicts
+ *
+ *  Usage:
+ *    ${EnvVarUpdate} "ResultVar" "EnvVarName" "Action" "RegLoc" "PathString"
+ *
+ *  Credits:
+ *  Version 1.0 
+ *  * Cal Turney (turnec2)
+ *  * Amir Szekely (KiCHiK) and e-circ for developing the forerunners of this
+ *    function: AddToPath, un.RemoveFromPath, AddToEnvVar, un.RemoveFromEnvVar,
+ *    WriteEnvStr, and un.DeleteEnvStr
+ *  * Diego Pedroso (deguix) for StrTok
+ *  * Kevin English (kenglish_hi) for StrContains
+ *  * Hendri Adriaens (Smile2Me), Diego Pedroso (deguix), and Dan Fuhry  
+ *    (dandaman32) for StrReplace
+ *
+ *  Version 1.1 (compatibility with StrFunc.nsh)
+ *  * techtonik
+ *
+ *  http://nsis.sourceforge.net/Environmental_Variables:_append%2C_prepend%2C_and_remove_entries
+ *
+ */
+
+
+!ifndef ENVVARUPDATE_FUNCTION
+!define ENVVARUPDATE_FUNCTION
+!verbose push
+!verbose 3
+!include "LogicLib.nsh"
+!include "WinMessages.NSH"
+!include "StrFunc.nsh"
+
+; ---- Fix for conflict if StrFunc.nsh is already includes in main file -----------------------
+!macro _IncludeStrFunction StrFuncName
+  !ifndef ${StrFuncName}_INCLUDED
+    ${${StrFuncName}}
+  !endif
+  !ifndef Un${StrFuncName}_INCLUDED
+    ${Un${StrFuncName}}
+  !endif
+  !define un.${StrFuncName} "${Un${StrFuncName}}"
+!macroend
+
+!insertmacro _IncludeStrFunction StrTok
+!insertmacro _IncludeStrFunction StrStr
+!insertmacro _IncludeStrFunction StrRep
+
+; ---------------------------------- Macro Definitions ----------------------------------------
+!macro _EnvVarUpdateConstructor ResultVar EnvVarName Action Regloc PathString
+  Push "${EnvVarName}"
+  Push "${Action}"
+  Push "${RegLoc}"
+  Push "${PathString}"
+    Call EnvVarUpdate
+  Pop "${ResultVar}"
+!macroend
+!define EnvVarUpdate '!insertmacro "_EnvVarUpdateConstructor"'
+ 
+!macro _unEnvVarUpdateConstructor ResultVar EnvVarName Action Regloc PathString
+  Push "${EnvVarName}"
+  Push "${Action}"
+  Push "${RegLoc}"
+  Push "${PathString}"
+    Call un.EnvVarUpdate
+  Pop "${ResultVar}"
+!macroend
+!define un.EnvVarUpdate '!insertmacro "_unEnvVarUpdateConstructor"'
+; ---------------------------------- Macro Definitions end-------------------------------------
+ 
+;----------------------------------- EnvVarUpdate start----------------------------------------
+!define hklm_all_users     'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
+!define hkcu_current_user  'HKCU "Environment"'
+ 
+!macro EnvVarUpdate UN
+ 
+Function ${UN}EnvVarUpdate
+ 
+  Push $0
+  Exch 4
+  Exch $1
+  Exch 3
+  Exch $2
+  Exch 2
+  Exch $3
+  Exch
+  Exch $4
+  Push $5
+  Push $6
+  Push $7
+  Push $8
+  Push $9
+  Push $R0
+ 
+  /* After this point:
+  -------------------------
+     $0 = ResultVar     (returned)
+     $1 = EnvVarName    (input)
+     $2 = Action        (input)
+     $3 = RegLoc        (input)
+     $4 = PathString    (input)
+     $5 = Orig EnvVar   (read from registry)
+     $6 = Len of $0     (temp)
+     $7 = tempstr1      (temp)
+     $8 = Entry counter (temp)
+     $9 = tempstr2      (temp)
+     $R0 = tempChar     (temp)  */
+ 
+  ; Step 1:  Read contents of EnvVarName from RegLoc
+  ;
+  ; Check for empty EnvVarName
+  ${If} $1 == ""
+    SetErrors
+    DetailPrint "ERROR: EnvVarName is blank"
+    Goto EnvVarUpdate_Restore_Vars
+  ${EndIf}
+ 
+  ; Check for valid Action
+  ${If}    $2 != "A"
+  ${AndIf} $2 != "P"
+  ${AndIf} $2 != "R"
+    SetErrors
+    DetailPrint "ERROR: Invalid Action - must be A, P, or R"
+    Goto EnvVarUpdate_Restore_Vars
+  ${EndIf}
+ 
+  ${If} $3 == HKLM
+    ReadRegStr $5 ${hklm_all_users} $1     ; Get EnvVarName from all users into $5
+  ${ElseIf} $3 == HKCU
+    ReadRegStr $5 ${hkcu_current_user} $1  ; Read EnvVarName from current user into $5
+  ${Else}
+    SetErrors
+    DetailPrint 'ERROR: Action is [$3] but must be "HKLM" or HKCU"'
+    Goto EnvVarUpdate_Restore_Vars
+  ${EndIf}
+ 
+  ; Check for empty PathString
+  ${If} $4 == ""
+    SetErrors
+    DetailPrint "ERROR: PathString is blank"
+    Goto EnvVarUpdate_Restore_Vars
+  ${EndIf}
+ 
+  ; Make sure we've got some work to do
+  ${If} $5 == ""
+  ${AndIf} $2 == "R"
+    SetErrors
+    DetailPrint "$1 is empty - Nothing to remove"
+    Goto EnvVarUpdate_Restore_Vars
+  ${EndIf}
+ 
+  ; Step 2: Scrub EnvVar
+  ;
+  StrCpy $0 $5                             ; Copy the contents to $0
+  ; Remove spaces around semicolons (NOTE: spaces before the 1st entry or
+  ; after the last one are not removed here but instead in Step 3)
+  ${If} $0 != ""                           ; If EnvVar is not empty ...
+    ${Do}
+      ${${UN}StrStr} $7 $0 " ;"
+      ${If} $7 == ""
+        ${ExitDo}
+      ${EndIf}
+      ${${UN}StrRep} $0  $0 " ;" ";"         ; Remove '<space>;'
+    ${Loop}
+    ${Do}
+      ${${UN}StrStr} $7 $0 "; "
+      ${If} $7 == ""
+        ${ExitDo}
+      ${EndIf}
+      ${${UN}StrRep} $0  $0 "; " ";"         ; Remove ';<space>'
+    ${Loop}
+    ${Do}
+      ${${UN}StrStr} $7 $0 ";;" 
+      ${If} $7 == ""
+        ${ExitDo}
+      ${EndIf}
+      ${${UN}StrRep} $0  $0 ";;" ";"
+    ${Loop}
+ 
+    ; Remove a leading or trailing semicolon from EnvVar
+    StrCpy  $7  $0 1 0
+    ${If} $7 == ";"
+      StrCpy $0  $0 "" 1                   ; Change ';<EnvVar>' to '<EnvVar>'
+    ${EndIf}
+    StrLen $6 $0
+    IntOp $6 $6 - 1
+    StrCpy $7  $0 1 $6
+    ${If} $7 == ";"
+     StrCpy $0  $0 $6                      ; Change ';<EnvVar>' to '<EnvVar>'
+    ${EndIf}
+    ; DetailPrint "Scrubbed $1: [$0]"      ; Uncomment to debug
+  ${EndIf}
+ 
+  /* Step 3. Remove all instances of the target path/string (even if "A" or "P")
+     $6 = bool flag (1 = found and removed PathString)
+     $7 = a string (e.g. path) delimited by semicolon(s)
+     $8 = entry counter starting at 0
+     $9 = copy of $0
+     $R0 = tempChar      */
+ 
+  ${If} $5 != ""                           ; If EnvVar is not empty ...
+    StrCpy $9 $0
+    StrCpy $0 ""
+    StrCpy $8 0
+    StrCpy $6 0
+ 
+    ${Do}
+      ${${UN}StrTok} $7 $9 ";" $8 "0"      ; $7 = next entry, $8 = entry counter
+ 
+      ${If} $7 == ""                       ; If we've run out of entries,
+        ${ExitDo}                          ;    were done
+      ${EndIf}                             ;
+ 
+      ; Remove leading and trailing spaces from this entry (critical step for Action=Remove)
+      ${Do}
+        StrCpy $R0  $7 1
+        ${If} $R0 != " "
+          ${ExitDo}
+        ${EndIf}
+        StrCpy $7   $7 "" 1                ;  Remove leading space
+      ${Loop}
+      ${Do}
+        StrCpy $R0  $7 1 -1
+        ${If} $R0 != " "
+          ${ExitDo}
+        ${EndIf}
+        StrCpy $7   $7 -1                  ;  Remove trailing space
+      ${Loop}
+      ${If} $7 == $4                       ; If string matches, remove it by not appending it
+        StrCpy $6 1                        ; Set 'found' flag
+      ${ElseIf} $7 != $4                   ; If string does NOT match
+      ${AndIf}  $0 == ""                   ;    and the 1st string being added to $0,
+        StrCpy $0 $7                       ;    copy it to $0 without a prepended semicolon
+      ${ElseIf} $7 != $4                   ; If string does NOT match
+      ${AndIf}  $0 != ""                   ;    and this is NOT the 1st string to be added to $0,
+        StrCpy $0 $0;$7                    ;    append path to $0 with a prepended semicolon
+      ${EndIf}                             ;
+ 
+      IntOp $8 $8 + 1                      ; Bump counter
+    ${Loop}                                ; Check for duplicates until we run out of paths
+  ${EndIf}
+ 
+  ; Step 4:  Perform the requested Action
+  ;
+  ${If} $2 != "R"                          ; If Append or Prepend
+    ${If} $6 == 1                          ; And if we found the target
+      DetailPrint "Target is already present in $1. It will be removed and"
+    ${EndIf}
+    ${If} $0 == ""                         ; If EnvVar is (now) empty
+      StrCpy $0 $4                         ;   just copy PathString to EnvVar
+      ${If} $6 == 0                        ; If found flag is either 0
+      ${OrIf} $6 == ""                     ; or blank (if EnvVarName is empty)
+        DetailPrint "$1 was empty and has been updated with the target"
+      ${EndIf}
+    ${ElseIf} $2 == "A"                    ;  If Append (and EnvVar is not empty),
+      StrCpy $0 $0;$4                      ;     append PathString
+      ${If} $6 == 1
+        DetailPrint "appended to $1"
+      ${Else}
+        DetailPrint "Target was appended to $1"
+      ${EndIf}
+    ${Else}                                ;  If Prepend (and EnvVar is not empty),
+      StrCpy $0 $4;$0                      ;     prepend PathString
+      ${If} $6 == 1
+        DetailPrint "prepended to $1"
+      ${Else}
+        DetailPrint "Target was prepended to $1"
+      ${EndIf}
+    ${EndIf}
+  ${Else}                                  ; If Action = Remove
+    ${If} $6 == 1                          ;   and we found the target
+      DetailPrint "Target was found and removed from $1"
+    ${Else}
+      DetailPrint "Target was NOT found in $1 (nothing to remove)"
+    ${EndIf}
+    ${If} $0 == ""
+      DetailPrint "$1 is now empty"
+    ${EndIf}
+  ${EndIf}
+ 
+  ; Step 5:  Update the registry at RegLoc with the updated EnvVar and announce the change
+  ;
+  ClearErrors
+  ${If} $3  == HKLM
+    WriteRegExpandStr ${hklm_all_users} $1 $0     ; Write it in all users section
+  ${ElseIf} $3 == HKCU
+    WriteRegExpandStr ${hkcu_current_user} $1 $0  ; Write it to current user section
+  ${EndIf}
+ 
+  IfErrors 0 +4
+    MessageBox MB_OK|MB_ICONEXCLAMATION "Could not write updated $1 to $3"
+    DetailPrint "Could not write updated $1 to $3"
+    Goto EnvVarUpdate_Restore_Vars
+ 
+  ; "Export" our change
+  SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} 0 "STR:Environment" /TIMEOUT=5000
+ 
+  EnvVarUpdate_Restore_Vars:
+  ;
+  ; Restore the user's variables and return ResultVar
+  Pop $R0
+  Pop $9
+  Pop $8
+  Pop $7
+  Pop $6
+  Pop $5
+  Pop $4
+  Pop $3
+  Pop $2
+  Pop $1
+  Push $0  ; Push my $0 (ResultVar)
+  Exch
+  Pop $0   ; Restore his $0
+ 
+FunctionEnd
+ 
+!macroend   ; EnvVarUpdate UN
+!insertmacro EnvVarUpdate ""
+!insertmacro EnvVarUpdate "un."
+;----------------------------------- EnvVarUpdate end----------------------------------------
+ 
+!verbose pop
+!endif
Index: trunk/t3d/nsis/WriteEnvStr.nsh
===================================================================
--- trunk/t3d/nsis/WriteEnvStr.nsh	(revision 7)
+++ trunk/t3d/nsis/WriteEnvStr.nsh	(revision 7)
@@ -0,0 +1,148 @@
+!ifndef _WriteEnvStr_nsh
+!define _WriteEnvStr_nsh
+ 
+!include WinMessages.nsh
+ 
+!ifndef WriteEnvStr_RegKey
+  !ifdef ALL_USERS
+    !define WriteEnvStr_RegKey \
+       'HKLM "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"'
+  !else
+    !define WriteEnvStr_RegKey 'HKCU "Environment"'
+  !endif
+!endif
+ 
+#
+# WriteEnvStr - Writes an environment variable
+# Note: Win9x systems requires reboot
+#
+# Example:
+#  Push "HOMEDIR"           # name
+#  Push "C:\New Home Dir\"  # value
+#  Call WriteEnvStr
+#
+Function WriteEnvStr
+  Exch $1 ; $1 has environment variable value
+  Exch
+  Exch $0 ; $0 has environment variable name
+  Push $2
+ 
+  Call IsNT
+  Pop $2
+  StrCmp $2 1 WriteEnvStr_NT
+    ; Not on NT
+    StrCpy $2 $WINDIR 2 ; Copy drive of windows (c:)
+    FileOpen $2 "$2\autoexec.bat" a
+    FileSeek $2 0 END
+    FileWrite $2 "$\r$\nSET $0=$1$\r$\n"
+    FileClose $2
+    SetRebootFlag true
+    Goto WriteEnvStr_done
+ 
+  WriteEnvStr_NT:
+      WriteRegExpandStr ${WriteEnvStr_RegKey} $0 $1
+      SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} \
+        0 "STR:Environment" /TIMEOUT=5000
+ 
+  WriteEnvStr_done:
+    Pop $2
+    Pop $0
+    Pop $1
+FunctionEnd
+ 
+#
+# un.DeleteEnvStr - Removes an environment variable
+# Note: Win9x systems requires reboot
+#
+# Example:
+#  Push "HOMEDIR"           # name
+#  Call un.DeleteEnvStr
+#
+Function un.DeleteEnvStr
+  Exch $0 ; $0 now has the name of the variable
+  Push $1
+  Push $2
+  Push $3
+  Push $4
+  Push $5
+ 
+  Call un.IsNT
+  Pop $1
+  StrCmp $1 1 DeleteEnvStr_NT
+    ; Not on NT
+    StrCpy $1 $WINDIR 2
+    FileOpen $1 "$1\autoexec.bat" r
+    GetTempFileName $4
+    FileOpen $2 $4 w
+    StrCpy $0 "SET $0="
+    SetRebootFlag true
+ 
+    DeleteEnvStr_dosLoop:
+      FileRead $1 $3
+      StrLen $5 $0
+      StrCpy $5 $3 $5
+      StrCmp $5 $0 DeleteEnvStr_dosLoop
+      StrCmp $5 "" DeleteEnvStr_dosLoopEnd
+      FileWrite $2 $3
+      Goto DeleteEnvStr_dosLoop
+ 
+    DeleteEnvStr_dosLoopEnd:
+      FileClose $2
+      FileClose $1
+      StrCpy $1 $WINDIR 2
+      Delete "$1\autoexec.bat"
+      CopyFiles /SILENT $4 "$1\autoexec.bat"
+      Delete $4
+      Goto DeleteEnvStr_done
+ 
+  DeleteEnvStr_NT:
+    DeleteRegValue ${WriteEnvStr_RegKey} $0
+    SendMessage ${HWND_BROADCAST} ${WM_WININICHANGE} \
+      0 "STR:Environment" /TIMEOUT=5000
+ 
+  DeleteEnvStr_done:
+    Pop $5
+    Pop $4
+    Pop $3
+    Pop $2
+    Pop $1
+    Pop $0
+FunctionEnd
+ 
+!ifndef IsNT_KiCHiK
+!define IsNT_KiCHiK
+ 
+#
+# [un.]IsNT - Pushes 1 if running on NT, 0 if not
+#
+# Example:
+#   Call IsNT
+#   Pop $0
+#   StrCmp $0 1 +3
+#     MessageBox MB_OK "Not running on NT!"
+#     Goto +2
+#     MessageBox MB_OK "Running on NT!"
+#
+!macro IsNT UN
+Function ${UN}IsNT
+  Push $0
+  ReadRegStr $0 HKLM \
+    "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
+  StrCmp $0 "" 0 IsNT_yes
+  ; we are not NT.
+  Pop $0
+  Push 0
+  Return
+ 
+  IsNT_yes:
+    ; NT!!!
+    Pop $0
+    Push 1
+FunctionEnd
+!macroend
+!insertmacro IsNT ""
+!insertmacro IsNT "un."
+ 
+!endif ; IsNT_KiCHiK
+ 
+!endif ; _WriteEnvStr_nsh
Index: trunk/t3d/nsis/t3d.nsi
===================================================================
--- trunk/t3d/nsis/t3d.nsi	(revision 7)
+++ trunk/t3d/nsis/t3d.nsi	(revision 7)
@@ -0,0 +1,198 @@
+; T3D Installer
+;-----------------------------------------------------------------------------------------------------------------------------
+
+!define PRODUCT_NAME "T3D"
+!define AppName "T3D"
+!define AppVersion "1.0"
+!define ShortName "T3D"
+!define Vendor "Software Engineering for Distributed Systems Group, University of G�ttingen"
+!define JRE_VERSION "1.6"
+!define JRE_URL "http://javadl.sun.com/webapps/download/AutoDL?BundleId=26223"
+!define ALL_USERS
+
+LangString ConfirmUninstall ${LANG_ENGLISH} "All existing \
+files and folders under the $(^Name) installation directory \
+'$INSTDIR' will be removed.$\r$\nThis includes any files and folders \
+that have since been added after the installation of \
+$(^Name).$\r$\n$\r$\nAre you sure you wish to continue?"
+
+!include "MUI2.nsh"
+!include "StrFunc.nsh"
+!include "EnvVarUpdate.nsh"
+!include "WriteEnvStr.nsh"
+
+Name "T3D"
+OutFile "t3d-install-32bit.exe"
+
+InstallDir $PROGRAMFILES\ETSI\T3D
+InstallDirRegKey HKLM "Software\ETSI\T3D" "Install_Dir"
+
+RequestExecutionLevel admin
+
+!define MUI_ABORTWARNING
+
+!insertmacro MUI_PAGE_COMPONENTS
+!insertmacro MUI_PAGE_DIRECTORY
+!insertmacro MUI_PAGE_INSTFILES
+!insertmacro MUI_UNPAGE_CONFIRM
+!insertmacro MUI_UNPAGE_INSTFILES
+
+!insertmacro MUI_LANGUAGE "English"
+
+Section ""
+  Call DetectJRE
+SectionEnd
+
+;-----------------------------------------------------------------------------------------------------------------------------
+; The stuff to install
+Section "T3D (required)"
+  SectionIn RO
+  SetOutPath $INSTDIR
+  File "..\dist\t3d.bat"
+  File "..\doc\t3d-documentation.pdf"
+  SetOutPath $INSTDIR\css
+  File "..\css\*.css"
+  SetOutPath $INSTDIR\js
+  File "..\js\*.js"
+  SetOutPath $INSTDIR\xsd
+  File "..\xsd\*.*"
+  SetOutPath $INSTDIR\xslt
+  File "..\xslt\*.xsl"
+  SetOutPath $INSTDIR\lib
+  File /r "..\dist\lib\*.jar"
+  SetOutPath $INSTDIR
+  
+  ;CreateDirectory $APPDATA\T3D
+  
+  WriteRegStr HKLM SOFTWARE\ETSI\T3D "Install_Dir" "$INSTDIR"
+  
+  ${EnvVarUpdate} $0 "T3D_HOME" "A" "HKLM" $INSTDIR
+  ${EnvVarUpdate} $0 "PATH" "A" "HKLM" $INSTDIR
+  
+  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Development Kit\1.6" "JavaHome"
+  StrCmp $2 "" 0 registerJavaHome
+  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment\1.6" "JavaHome"
+  StrCmp $2 "" 0 registerJavaHome
+registerJavaHome:
+  Push JAVA_HOME
+  Push $2
+  Call WriteEnvStr
+
+  ; Write the uninstall keys for Windows
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AppName}" "DisplayName" "${AppName}"
+  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AppName}" "UninstallString" '"$INSTDIR\uninstall.exe"'
+  WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AppName}" "NoModify" 1
+  WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AppName}" "NoRepair" 1
+  WriteUninstaller "uninstall.exe"
+SectionEnd
+
+Section "T3D Sample Files"
+  SetOutPath $INSTDIR\samples
+  
+  File /r /x ".svn" /x ".project" "..\..\t3d-examples\*.*"
+SectionEnd
+
+;-----------------------------------------------------------------------------------------------------------------------------
+; Start Menu Section
+Section "Start Menu Shortcuts"
+  CreateDirectory "$SMPROGRAMS\${AppName}"
+  CreateShortCut "$SMPROGRAMS\${AppName}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
+  CreateShortCut "$SMPROGRAMS\${AppName}\T3D Documentation.lnk" "$INSTDIR\t3d-documentation.pdf" 
+  CreateShortCut "$SMPROGRAMS\${AppName}\T3D Default CSS File.lnk" "$INSTDIR\css\doc.css" 
+
+  SetOutPath $INSTDIR\samples
+  CreateShortCut "$SMPROGRAMS\${AppName}\Samples Folder.lnk" "$INSTDIR\samples" 
+;  CreateShortCut "$SMPROGRAMS\${AppName}\T3D Configuration Directory.lnk" "$APPDATA\T3D\"
+  CreateShortCut "$SMPROGRAMS\${AppName}\Samples Folder (Command-Line).lnk" "$WINDIR\system32\cmd.exe"
+SectionEnd
+
+;-----------------------------------------------------------------------------------------------------------------------------
+; Uninstaller
+Section "Uninstall"
+  ; Remove registry keys
+  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AppName}"
+  DeleteRegKey HKLM SOFTWARE\ETSI\${AppName}
+
+  MessageBox MB_OKCANCEL|MB_ICONINFORMATION $(ConfirmUninstall) IDOK +2
+  Abort
+  RMDir /r $INSTDIR
+
+  ; Remove shortcuts, if any
+  Delete "$SMPROGRAMS\${AppName}\*.*"
+
+  ; Remove directories used
+  RMDir "$SMPROGRAMS\${AppName}"
+  RMDir "$INSTDIR"
+  RMDir "$PROGRAMFILES\ETSI"
+
+  ; Remove Environment Variables
+  ${un.EnvVarUpdate} $0 "PATH" "R" "HKLM" $INSTDIR
+  Push T3D_HOME
+  Call un.DeleteEnvStr
+  Push T3D_HOME
+  Call un.DeleteEnvStr
+SectionEnd
+
+;-----------------------------------------------------------------------------------------------------------------------------
+Function GetJRE
+        MessageBox MB_OK "${PRODUCT_NAME} uses Java ${JRE_VERSION}, it will now \
+                         be downloaded and installed"
+ 
+        StrCpy $2 "$TEMP\Java Runtime Environment.exe"
+        nsisdl::download /TIMEOUT=30000 ${JRE_URL} $2
+        Pop $R0 ;Get the return value
+                StrCmp $R0 "success" +3
+                MessageBox MB_OK "Download failed: $R0"
+                Quit
+        ExecWait $2
+        Delete $2
+FunctionEnd
+ 
+;-----------------------------------------------------------------------------------------------------------------------------
+Function DetectJRE
+  ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \
+             "CurrentVersion"
+  StrCmp $2 ${JRE_VERSION} done
+ 
+  Call GetJRE
+ 
+  done:
+FunctionEnd
+
+;-----------------------------------------------------------------------------------------------------------------------------
+Function .onInstSuccess
+  MessageBox MB_OK "You have successfully installed ${PRODUCT_NAME}. You can now use 't3d' on the command-line!"
+FunctionEnd
+ 
+;-----------------------------------------------------------------------------------------------------------------------------
+;Function un.onUninstSuccess
+;  MessageBox MB_OK "You have successfully uninstalled ${PRODUCT_NAME}."
+;FunctionEnd
+
+;-----------------------------------------------------------------------------------------------------------------------------
+Function .onInit
+  ReadRegStr $R0 HKLM \
+  "Software\Microsoft\Windows\CurrentVersion\Uninstall\${AppName}" \
+  "UninstallString"
+  StrCmp $R0 "" done
+ 
+  MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
+  "${AppName} is already installed. $\n$\nClick `OK` to remove the \
+  previous version or `Cancel` to cancel this upgrade." \
+  IDOK uninst
+  Abort
+ 
+;Run the uninstaller
+uninst:
+  ClearErrors
+  ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
+ 
+  IfErrors no_remove_uninstaller
+    ;You can either use Delete /REBOOTOK in the uninstaller or add some code
+    ;here to remove the uninstaller. Use a registry key to check
+    ;whether the user has chosen to uninstall. If you are using an uninstaller
+    ;components page, make sure all sections are uninstalled.
+  no_remove_uninstaller:
+ 
+done:
+FunctionEnd
Index: trunk/t3d/src/elements/TTCN3Comment.java
===================================================================
--- trunk/t3d/src/elements/TTCN3Comment.java	(revision 7)
+++ trunk/t3d/src/elements/TTCN3Comment.java	(revision 7)
@@ -0,0 +1,309 @@
+package elements;
+
+import java.util.LinkedList;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import org.apache.commons.lang.*;
+import org.etsi.t3d.T3D;
+
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.LocationAST;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3ParserTokenTypes;
+
+public class TTCN3Comment {
+	private String commentsXML;	
+		
+
+	
+	private LinkedList<String> desc = new LinkedList<String>();
+	private LinkedList<String> author = new LinkedList<String>();
+	private LinkedList<String> config = new LinkedList<String>();
+	private LinkedList<String> exception = new LinkedList<String>();
+	private LinkedList<String> member = new LinkedList<String>();
+	private LinkedList<String> param = new LinkedList<String>();
+	private LinkedList<String> purpose = new LinkedList<String>();
+	private LinkedList<String> remark = new LinkedList<String>();
+	private LinkedList<String> Return = new LinkedList<String>();
+	private LinkedList<String> see = new LinkedList<String>();
+	private LinkedList<String> since = new LinkedList<String>();
+	private LinkedList<String> status = new LinkedList<String>();
+	private LinkedList<String> url = new LinkedList<String>();
+	private LinkedList<String> verdict = new LinkedList<String>();
+	private LinkedList<String> version = new LinkedList<String>();
+	
+	private LinkedList<String> warnings = new LinkedList<String>();
+	private LinkedList<String> seeRefs = new LinkedList<String>();
+
+	
+	public TTCN3Comment(LocationAST node){
+		
+	}
+	
+	
+	
+	//TODO: WHY WHY WHY OH WHY?!?!?!?!?!??! REORGANIZE AND REFACTOR
+	public TTCN3Comment(String rawComments, int elementType){
+		if(rawComments != null && !rawComments.equals("")){
+			rawComments = "\n" + rawComments;
+			rawComments = rawComments.replaceAll("\\r", "");
+			rawComments = rawComments.replaceAll("\\n(\\s|\\*|/)*", "\n").replaceAll("\\n+","\n");
+			rawComments = rawComments.trim() + "\r___NEWTAG___";
+			rawComments = rawComments.replaceAll(" @see", " @esee").replaceAll(" @url", " @eurl");
+			rawComments = rawComments.replaceAll("\\n@", "\r___NEWTAG___@");
+			
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getDescTag(), desc);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getAuthorTag(), author);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getConfigTag(), config);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getExceptionTag(), exception);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getMemberTag(), member);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getParamTag(), param);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getPurposeTag(), purpose);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getRemarkTag(), remark);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getReturnTag(), Return);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getSeeTag(), see);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getSinceTag(), since);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getStatusTag(), status);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getUrlTag(), url);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getVerdictTag(), verdict);
+			getComments(rawComments, T3D.activeProfile.getCommentTagsConfiguration().getVersionTag(), version);
+			
+			
+			if (T3D.activeProfile.isCheckConsistentTagUsage()) {
+				if (config.size() >= 2)
+					warnings.add(getWarningMultipleTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getConfigTag()));
+				if (purpose.size() >= 2)
+					warnings.add(getWarningMultipleTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getPurposeTag()));
+				if (Return.size() >= 2)
+					warnings.add(getWarningMultipleTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getReturnTag()));
+				if (since.size() >= 2)
+					warnings.add(getWarningMultipleTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getSinceTag()));
+				if (status.size() >= 2)
+					warnings.add(getWarningMultipleTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getStatusTag()));
+				if (version.size() >= 2)
+					warnings.add(getWarningMultipleTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getVersionTag()));
+
+				if (elementType != TTCN3ParserTokenTypes.TestcaseDef && config.size() >= 1) {
+					warnings.add(getWarningExtraTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getConfigTag()));
+				}
+				if (elementType != TTCN3ParserTokenTypes.SignatureDef && exception.size() >= 1) {
+					warnings.add(getWarningExtraTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getExceptionTag()));
+				}
+				if (elementType != TTCN3ParserTokenTypes.TypeDef
+						&& elementType != TTCN3ParserTokenTypes.TemplateDef
+						&& elementType != TTCN3ParserTokenTypes.ModuleParDef
+						&& elementType != TTCN3ParserTokenTypes.ConstDef
+						&& member.size() >= 1) {
+					warnings.add(getWarningExtraTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getMemberTag()));
+				}
+				if (elementType != TTCN3ParserTokenTypes.TemplateDef
+						&& elementType != TTCN3ParserTokenTypes.SignatureDef
+						&& elementType != TTCN3ParserTokenTypes.FunctionDef
+						&& elementType != TTCN3ParserTokenTypes.AltstepDef
+						&& elementType != TTCN3ParserTokenTypes.TestcaseDef
+						&& param.size() >= 1) {
+					warnings.add(getWarningExtraTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getParamTag()));
+				}
+				if (elementType != TTCN3ParserTokenTypes.TestcaseDef && purpose.size() >= 1) {
+					warnings.add(getWarningExtraTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getPurposeTag()));
+				}
+				if (elementType != TTCN3ParserTokenTypes.FunctionDef && elementType != TTCN3ParserTokenTypes.SignatureDef && Return.size() >= 1) {
+					warnings.add(getWarningExtraTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getReturnTag()));
+				}
+				if (elementType != TTCN3ParserTokenTypes.FunctionDef
+						&& elementType != TTCN3ParserTokenTypes.TestcaseDef
+						&& elementType != TTCN3ParserTokenTypes.AltstepDef
+						&& verdict.size() >= 1) {
+					warnings.add(getWarningExtraTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getVerdictTag()));
+				}
+
+				for (String d : desc)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getDescTag()));
+				for (String d : author)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getAuthorTag()));
+				for (String d : config)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getConfigTag()));
+				for (String d : exception)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getExceptionTag()));
+				for (String d : member)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getMemberTag()));
+				for (String d : param)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getParamTag()));
+				for (String d : purpose)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getPurposeTag()));
+				for (String d : remark)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getRemarkTag()));
+				for (String d : Return)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getReturnTag()));
+				for (String d : see)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getSeeTag()));
+				for (String d : since)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getSinceTag()));
+				for (String d : status)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getStatusTag()));
+				for (String d : url)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getUrlTag()));
+				for (String d : verdict)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getVerdictTag()));
+				for (String d : version)
+					if (d.length() <= 0)
+						warnings.add(getWarningEmptyTags("@" + T3D.activeProfile.getCommentTagsConfiguration().getVersionTag()));
+			}
+		}
+	
+	for(String seeRef : see)
+		seeRefs.add(seeRef);
+	}
+	
+	private String getWarningMultipleTags(String tagname){
+		return "Multiple " + tagname + " tags found (may only contain one)";
+	}
+	
+	private String getWarningExtraTags(String tagname){
+		return tagname + " tag found (may not be used here)";
+	}
+	
+	private String getWarningEmptyTags(String tagname){
+		return "Empty tag found: " + tagname;
+	}
+	
+	
+	private String getIdentifier(String comment, int pos){
+		String subString = comment.substring(pos, comment.length());
+		
+		int endpos = subString.indexOf(" ");
+		if(endpos == -1)
+			endpos = subString.length();
+//		System.out.println("-" + subString.substring(0, endpos) + "-");
+		return subString.substring(0, endpos).trim();		
+	}
+	
+	private String replaceTag(String c, String tag){
+		int pos;
+		c += " ";
+		while(c.contains(" @" + tag + " ")){
+			pos = c.indexOf(" @" + tag + " ");
+			if(pos != -1){
+				String identifier = getIdentifier(c, pos+ (tag.length() + 3));
+				c = c.replaceAll("@" + tag + " " + identifier + " ", "<" + tag + ">" + identifier + "</" + tag + ">");
+			}else
+				break;
+		}
+		return c.trim();
+	}
+	
+	private String replaceSee(String c){
+		return replaceTag(c, "esee");
+	}
+	
+	private String replaceUrl(String c){
+		return replaceTag(c, "eurl");
+	}
+	
+	private String formatComment(String c){
+		return StringEscapeUtils.escapeXml(c).replaceAll("  ", " ").replaceAll("\n", " ").replaceAll("\t", " ").replaceAll("\r", "");
+
+	}
+	
+	public String toString(){
+		commentsXML = "";
+		if(!isEmpty()){
+			commentsXML += "\n<comment>";
+			for(String d : desc)
+				commentsXML += ("\n<desc>" + replaceUrl(replaceSee(formatComment(d))) + "</desc>");
+			
+			for(String d : author)
+				commentsXML += ("\n<author>" + replaceUrl(replaceSee(formatComment(d))) + "</author>");
+			
+			for(String d : config)
+				commentsXML += ("\n<config>" + replaceUrl(replaceSee(formatComment(d))) + "</config>");
+		
+			for(String d : exception)
+				commentsXML += ("\n<exception>" + replaceUrl(replaceSee(formatComment(d))) + "</exception>");
+		
+			for(String d : member)
+				commentsXML += ("\n<member>" + replaceUrl(replaceSee(formatComment(d))) + "</member>");
+
+			for(String d : param)
+				commentsXML += ("\n<param>" + replaceUrl(replaceSee(formatComment(d))) + "</param>");
+			for(String d : purpose)
+				commentsXML += ("\n<purpose>" + replaceUrl(replaceSee(formatComment(d))) + "</purpose>");
+					
+			for(String d : remark)
+				commentsXML += ("\n<remark>" + replaceUrl(replaceSee(formatComment(d))) + "</remark>");
+			
+			for(String d : Return)
+					commentsXML += ("\n<return>" + replaceUrl(replaceSee(formatComment(d))) + "</return>");
+			
+			for(String d : see)
+				commentsXML += ("\n<see>" + formatComment(d) + "</see>");
+			
+			for(String d : since)
+				commentsXML += ("\n<since>" + replaceUrl(replaceSee(formatComment(d))) + "</since>");
+			
+			for(String d : status)
+				commentsXML += ("\n<status>" + replaceUrl(replaceSee(formatComment(d))) + "</status>");
+			
+			for(String d : url)
+				commentsXML += ("\n<url>" + formatComment(d) + "</url>");
+			
+			for(String d : verdict)
+				commentsXML += ("\n<verdict>" + replaceUrl(replaceSee(formatComment(d))) + "</verdict>");
+			
+			for(String d : version)
+				commentsXML += ("\n<version>" + replaceUrl(replaceSee(formatComment(d))) + "</version>");
+			
+			commentsXML += "</comment>";
+						
+		}
+		if(commentsXML.length() > 20)
+			return commentsXML;
+		else
+			return "";
+	}
+	
+	private boolean isEmpty(){
+		return false;
+	}
+		
+	private void getComments(String commentblock, String tag, LinkedList<String> vector){
+		Pattern p = Pattern.compile("@" + tag + "(.|\\n)*\\r___NEWTAG___");
+		Matcher m = p.matcher(commentblock);
+		while (m.find() == true){
+			String comment = m.group().replaceFirst("@"+tag, "").replaceFirst("\r___NEWTAG___", "").trim();
+			vector.add(comment);
+		}		
+	}
+	
+	public LinkedList<String> getDocumentedParameters(){
+		LinkedList <String> docParNames = new LinkedList<String>();		
+		for(String parString : param){
+			if(parString.indexOf(" ") > 0)
+				docParNames.add(parString.substring(0, parString.indexOf(" ")));
+		}		
+		return docParNames;
+	}
+
+	public LinkedList<String> getDescriptions(){
+		LinkedList <String> descriptions = new LinkedList<String>();		
+		for(String descString : desc)
+				descriptions.add(descString);
+		return descriptions;
+	}
+	
+	public LinkedList<String> getWarnings() {
+		return warnings;
+	}	
+}
Index: trunk/t3d/src/elements/TTCN3Element.java
===================================================================
--- trunk/t3d/src/elements/TTCN3Element.java	(revision 7)
+++ trunk/t3d/src/elements/TTCN3Element.java	(revision 7)
@@ -0,0 +1,127 @@
+package elements;
+
+import java.util.LinkedList;
+
+import org.etsi.common.logging.LoggingInterface.MessageClass;
+import org.etsi.t3d.T3D;
+
+
+public class TTCN3Element{
+
+	private String type;
+	private int LEVEL0 = 0;
+	protected String behaviour;
+	protected TTCN3Comment comment = null;
+	protected String name = "";
+	protected String location = "";
+	protected String paramView = "";
+	protected String refs = "";
+	protected String path = "";
+	private LinkedList <String[]> descs = new LinkedList<String[]>();
+	
+	public TTCN3Element() {
+		
+	}
+	
+	//TODO: using type codes will be presumably preferable
+	//TODO: HELP!!! THIS IS A DISASTER!!!!! REORGANIZE AND REFACTOR
+	public TTCN3Element(String name, String type, String location,
+			String behaviour, TTCN3Comment comment, 
+			LinkedList <String> parNames, String filename, String paramView, String path, int line){
+		this.name = name;
+		this.location = location;
+		this.behaviour = behaviour;
+		this.comment = comment;
+		this.type = type;
+		this.paramView = paramView;
+		this.path = path;
+		
+		
+		
+		for(String warning : comment.getWarnings()) {
+			
+//			TODO: revise XML usage
+//			T3D.printLog(LEVEL0, filename, line, line, 1, warning);
+			T3D.getLoggingInterface().logWarning(line, line, MessageClass.DOCUMENTATION, warning);
+		}
+		
+		LinkedList <String> descsStrings = comment.getDescriptions();
+		for(String descString : descsStrings){
+			String[] descArray = {descString, filename, "" + line}; 
+			descs.add(descArray);
+		}
+		
+		
+		
+		LinkedList <String> docParNames = comment.getDocumentedParameters();
+		
+		
+		LinkedList <String> unDocParNames = new LinkedList<String>();
+		LinkedList <String> docUnparNames = new LinkedList<String>();
+		if(!parNames.isEmpty() && T3D.activeProfile.isCheckUndocumentedParameters()){
+			for(String parString : parNames){
+				boolean isDocumented = false;
+				for(String docParString : docParNames){
+					if(parString.startsWith(docParString + " "))
+						isDocumented = true;
+				}
+				if(!isDocumented)
+					unDocParNames.add(parString);
+			}
+			
+			
+			for(String docParString : docParNames){
+				boolean isParameter = false;
+				for(String parString : parNames){
+					if(parString.startsWith(docParString + " "))
+						isParameter = true;
+				}
+				if(!isParameter)
+					docUnparNames.add(docParString);
+			}
+			
+			for(String s : unDocParNames){
+				String parName = s.substring(0, s.indexOf(' '));
+				Integer parLine = Integer.valueOf(s.substring(s.indexOf(' ')+1)).intValue();
+				String warning = "Undocumented parameter found: " + parName ;
+//				TODO: review XML usage
+//				T3D.printLog(LEVEL0, filename, parLine, parLine, 1, warning);
+				T3D.getLoggingInterface().logWarning(parLine, parLine, MessageClass.DOCUMENTATION, warning);
+			}
+			
+			for(String s : docUnparNames){
+				String warning = "Documented parameter not found: " + s ;
+				//TODO: review XML usage
+//				T3D.printLog(LEVEL0, filename, line, line, 1, warning);
+				T3D.getLoggingInterface().logWarning(line, line, MessageClass.DOCUMENTATION, warning);
+
+			}
+		}
+	}
+	
+	public String toXML(String currentModule){
+		return "<element type=\"" + type + "\">\n" +
+				"<name>" + name + "</name>\n" +
+				"<location>" + location + "</location>\n" +
+				comment.toString() +
+				"<behaviour>" + behaviour.replaceAll("<tab/>", "     ") + "</behaviour>" +
+				"<modulename>" + currentModule + "</modulename>" +
+				paramView +
+				refs +
+				path +
+				"</element>";
+	}
+	
+	public String getType(){
+		return type;
+	}
+	public LinkedList<String[]> getDescs() {
+		return descs;
+	}
+	public String getName(){
+		return name;
+	}
+	public String getLocation(){
+		return location;
+	}
+}
Index: trunk/t3d/src/org/etsi/t3d/DependencyPrinter.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/DependencyPrinter.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/DependencyPrinter.java	(revision 7)
@@ -0,0 +1,78 @@
+package org.etsi.t3d;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.LocationAST;
+
+public class DependencyPrinter {
+	private PrintStream stream;
+	private String currentTTCN3File;
+	
+	public void finishXML(){
+		writeStream("\n</dependencies>");
+		
+	}
+	
+	public void newElement(String name, String id, int type, int line,
+			String module, String dependencies) {
+		writeStream("\n\t<element id=\""
+				+ id
+				+ "\" name=\""
+				+ name
+				+ "\" type=\""
+				+ LocationAST.getTTCN3ParserTokenTypeTypePrettyName(type)
+				+ "\" line=\""
+				+ line
+				+ "\" module=\""
+				+ module
+				+ "\" file=\""
+				+ currentTTCN3File.substring(currentTTCN3File.lastIndexOf("/") + 1)
+				+ "\">");
+		writeStream(dependencies);
+		writeStream("\n\t</element>\n");
+	}
+
+	public void newGroup(String name, String id, int type, int line, String module,
+			String elementList) {
+		writeStream("\n\t<element id=\""
+				+ id
+				+ "\" name=\""
+				+ name
+				+ "\" type=\""
+				+ LocationAST.getTTCN3ParserTokenTypeTypePrettyName(type)
+				+ "\" line=\""
+				+ line
+				+ "\" module=\""
+				+ module
+				+ "\" file=\""
+				+ currentTTCN3File.substring(currentTTCN3File.lastIndexOf("/") + 1)
+				+ "\">");
+		writeStream(elementList);
+		writeStream("\n\t</element>\n");
+	}
+	
+	public void setXMLPath(String xmlpath){
+		FileOutputStream file;
+		try {
+			file = new FileOutputStream(xmlpath);
+			stream = new PrintStream(file);
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		}
+		writeStream("<?xml-stylesheet type=\"text/xsl\" href=\"../dependencies.xsl\"?>\n<dependencies>");
+	}
+
+	private void writeStream(String content){
+		stream.print(content);
+	}
+	
+	public void setCurrentTTCN3File(String currentTTCN3File) {
+		this.currentTTCN3File = currentTTCN3File;
+	}
+
+	public String getCurrentTTCN3File() {
+		return currentTTCN3File;
+	}
+}
Index: trunk/t3d/src/org/etsi/t3d/ImportPrinter.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/ImportPrinter.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/ImportPrinter.java	(revision 7)
@@ -0,0 +1,175 @@
+package org.etsi.t3d;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.util.LinkedList;
+
+import org.apache.commons.lang.StringEscapeUtils;
+import org.etsi.common.logging.LoggingInterface;
+import org.etsi.common.logging.LoggingInterface.MessageClass;
+import org.etsi.t3d.visitor.VisitorCommonFunctions;
+
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.ASTUtil;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.LocationAST;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3ParserTokenTypes;
+
+public class ImportPrinter {
+	private PrintStream stream;
+	private boolean firstModule = true;
+	private LinkedList<String> modules = new LinkedList<String>();
+	private LinkedList<String> locationsGlobal = new LinkedList<String>();
+	private String currentTTCN3File;
+	private LoggingInterface logger = null;
+	
+	public ImportPrinter() {
+		this.logger = new LoggingInterface(T3D.activeProfile.getLoggingConfiguration());
+		this.logger.setMaximumLogLevel(T3D.getLogLevel());
+	}
+	
+	public void finishXML(){
+		writeStream("\n</module>\n</imports>");		
+	}
+
+	public void setXMLPath(String xmlpath){
+		FileOutputStream file;
+		try {
+			file = new FileOutputStream(xmlpath);
+			stream = new PrintStream(file);
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		}
+		writeStream("\n<imports t3dversion=\"" + T3D.versionNumber + "\">");
+	}
+
+	private void writeStream(String content){
+		stream.print(content);
+	}
+	
+	public void setCurrentTTCN3File(String currentTTCN3File) {
+		this.currentTTCN3File = currentTTCN3File;
+	}
+
+	public String getCurrentTTCN3File() {
+		return currentTTCN3File;
+	}
+	
+	public void printImportView(LocationAST node){
+		LinkedList<LocationAST> ImportDefs = ASTUtil.findTypeNodes(node, TTCN3ParserTokenTypes.ImportDef);
+		for(LocationAST importDef : ImportDefs){
+			LocationAST importModuleIdentifier = importDef;
+			while(importModuleIdentifier.getFirstChild() != null)
+				importModuleIdentifier = importModuleIdentifier.getFirstChild();			
+			LocationAST importedModuleIdentifier = VisitorCommonFunctions.getDeclarationNodeFromIdentifier(importModuleIdentifier);
+			
+			if(!locationsGlobal.contains(importModuleIdentifier.getText())){
+				listAdd(locationsGlobal,VisitorCommonFunctions.getName(node.getFirstChild()));
+				
+				String behaviour = getImportBehavior(importDef);
+				
+				writeStream("\n<import name=\"" + importModuleIdentifier.getText() + "\">"
+					+ "\n\t\t<import_behaviour>" + behaviour + "\n\t\t</import_behaviour>");
+				if(!ASTUtil.findTypeNodes(importDef, TTCN3ParserTokenTypes.AllKeyword).isEmpty()){
+					listAdd(locationsGlobal, importModuleIdentifier.getText());
+					if(importedModuleIdentifier != null)
+						printImportView(VisitorCommonFunctions.getModule(importedModuleIdentifier));
+				}
+				
+				writeStream("\n</import>");
+			} else{
+				String behaviour = getImportBehavior(importDef);
+				writeStream("\n<import name=\"" + importModuleIdentifier.getText() + "\">"
+						+ "\n\t\t<import_behaviour>" + behaviour + "\n\t\t</import_behaviour>\n</import>");
+			}
+		}
+	}
+	
+	private String getImportBehavior(LocationAST importDef){
+		String b = VisitorCommonFunctions.getWholeElement(importDef, true).replaceAll("\\r", "");
+		b = StringEscapeUtils.escapeXml(b);
+		b = b.replaceAll("\\n", "").trim();
+		if(b.indexOf('{') > 0 && b.indexOf('}') > b.indexOf('{'))
+			b = b.substring(b.indexOf('{') + 1, b.indexOf('}'));
+		else
+			b = b.replaceFirst("import from \\w* ", "");
+		b = VisitorCommonFunctions.replaceReferences(b, VisitorCommonFunctions.getReferences(importDef));
+		return b.trim();
+	}
+	
+	private void listAdd(LinkedList<String> list, String string){
+		if(!list.contains(string))
+			list.add(string);
+	}
+	
+	public void checkForCyclicImports(LocationAST node, LinkedList<String> locations){
+		LinkedList<LocationAST> ImportDefs = ASTUtil.findTypeNodes(node, TTCN3ParserTokenTypes.ImportDef);	
+		for(LocationAST importDef : ImportDefs){
+			LocationAST importModuleIdentifier = importDef;
+			while(importModuleIdentifier.getFirstChild() != null)
+				importModuleIdentifier = importModuleIdentifier.getFirstChild();			
+			LocationAST importedModuleIdentifier = VisitorCommonFunctions.getDeclarationNodeFromIdentifier(importModuleIdentifier);			
+			if(!locations.contains(importModuleIdentifier.getText())){
+				LinkedList<String> newLocations = new LinkedList<String>();
+				for(String l : locations)
+					newLocations.add(l);
+				listAdd(newLocations, VisitorCommonFunctions.getName(node.getFirstChild()));
+				listAdd(newLocations, importModuleIdentifier.getText());
+				
+				
+				String behaviour = VisitorCommonFunctions.getBehaviour(importDef, 0, false, true);
+
+				behaviour = behaviour.substring(behaviour.indexOf("</link>") + 7).trim();
+				if(behaviour.charAt(0) == '{' && behaviour.charAt(behaviour.length()-1) == '}')
+					behaviour = behaviour.substring(1, behaviour.length()-1);
+
+				behaviour = behaviour.replaceAll("\\s;", "").replaceAll("<constructbody id=\".*\">", "").replaceAll("</constructbody>", "");;
+				
+				behaviour = behaviour.trim();
+				if(behaviour.charAt(0) == '{')
+					behaviour = behaviour.replaceAll("\\{", "").replaceAll("\\}", "");
+				behaviour = behaviour.replaceAll("\\n", "");
+
+				if(behaviour.startsWith("all") || behaviour.startsWith("recursive all"))
+					checkForCyclicImports(VisitorCommonFunctions.getModule(importedModuleIdentifier), newLocations);
+			} else if(locations.getFirst().equals(importModuleIdentifier.getText())){
+				String warning = "";
+				for(String l : locations) {
+					warning += " -> " + l;
+				}
+				warning = "Cyclic imports found: " + warning.substring(4) + " -> " + locations.getFirst();
+				this.getLoggingInterface().logWarning(importModuleIdentifier.getLine(),
+						importModuleIdentifier.getLine(),
+						MessageClass.DOCUMENTATION,
+						warning);
+				//TODO: revise XML usage
+				//T3D.printLog(0, currentTTCN3File, importModuleIdentifier.getLine(), importModuleIdentifier.getLine(), 1, warning);
+			}
+		}
+	}
+	
+	public void newModule(String name) {
+		locationsGlobal = new LinkedList<String>();
+		String moduleName = name;
+		if (modules.contains(name)) {
+			int repetitionIndex = 0; 
+			while(modules.contains(name + "-"+repetitionIndex)){
+				repetitionIndex++;
+			}
+			moduleName = name + "-" + repetitionIndex;
+		}
+		modules.add(moduleName);
+		if(!firstModule)
+			writeStream("\n</module>");
+		else
+			firstModule = false;
+		writeStream("\n<module name=\"" + moduleName + "\">");		
+	}
+
+	public void setLoggingInterface(LoggingInterface logger) {
+		this.logger = logger;
+	}
+
+	public LoggingInterface getLoggingInterface() {
+		return logger;
+	}
+}
Index: trunk/t3d/src/org/etsi/t3d/T3D.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/T3D.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/T3D.java	(revision 7)
@@ -0,0 +1,838 @@
+package org.etsi.t3d;
+
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.CommandLineParser;
+import org.apache.commons.cli.GnuParser;
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Option;
+import org.apache.commons.cli.ParseException;
+import org.etsi.t3d.config.T3DConfig;
+import org.etsi.t3d.config.DocumentationProfile;
+import org.etsi.t3d.config.T3DOptionsHandler;
+import org.etsi.t3d.exceptions.TTCN3BehaviorException;
+import org.etsi.t3d.exceptions.TTCN3ParserException;
+import org.etsi.t3d.visitor.DependencyVisitor;
+import org.etsi.t3d.visitor.ImportVisitor;
+import org.etsi.t3d.visitor.T3DVisitor;
+import org.etsi.common.InputInterface;
+import org.etsi.common.MiscTools;
+import org.etsi.common.configuration.ConfigTools;
+import org.etsi.common.exceptions.TerminationException;
+import org.etsi.common.logging.LoggingInterface;
+import org.etsi.common.logging.LoggingInterface.LogLevel;
+import org.xml.sax.SAXException;
+
+import antlr.MismatchedTokenException;
+import antlr.RecognitionException;
+import antlr.TokenStreamException;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.LocationAST;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3Analyzer;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3AnalyzerFlyweightFactory;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3Parser;
+
+public class T3D {
+
+	public static String versionNumber = "v1.0.2";
+	//set during automated server builds
+	private static String buildStamp = "---BUILD_STAMP---";
+	public static DocumentationProfile activeProfile = null;
+	private String configurationClassName = T3DConfig.class.getName();
+	private String configurationProfileClassName = DocumentationProfile.class.getName();
+	private String configurationFilename;
+	private String selectedProfileName = null;
+	private static LogLevel logLevel = LogLevel.INFORMATION;
+
+	private HashMap<String, String> argsMap = new HashMap<String, String>();
+	private ArrayList<String> inputPaths = new ArrayList<String>();
+	private String destinationPath = null;
+
+	private HashMap<String, Integer> linesOfCodeMap = new HashMap<String, Integer>();
+	private int totalLoc = 0;
+
+	private boolean generateNewConfiguration = false;
+	
+	private static boolean generateMainXML = false;
+	private static boolean generateDependenciesXML = false;
+	private static boolean generateHTML = false;
+	
+	private static XMLPrinter xmlPrinter;
+	private static ImportPrinter importPrinter;
+	private static DependencyPrinter depPrinter;
+	//TODO: START HERE, remove and substitute by a method that derives the names based on the TTCN3ParserTokenTypes
+	//WHAT ABOUT EXTERNAL FUNCTIONS???
+	//public final static String elementTypes[] = {"Module", "Function", "Testcase", "Group", "Altstep", "Constant", "Module Parameter", "Template", "Type", "Signature"};
+	private static final String documentationLogFile = "log.xml";
+	private static final String documentationXmlFile = "project.xml";
+	private static final String dependencyXmlFile = "dependencies.xml";
+	private static final String importXmlFile = "imports.xml";
+	private String xsdFile = System.getenv("T3D_HOME")+"/xsd/project_schema.xsd";
+
+	//private static T3DLoggingInterface loggingInterface = new T3DLoggingInterface();
+
+	//TODO: TEMPORARY SOLUTION UNTIL MAJOR OTHER ISSUES ARE RESOLVED
+	private static LoggingInterface logger = null;
+	
+	public T3D() {
+	}
+
+//	public static void printLog(int LEVEL, String filename, int startLine, int endLine, int type, String output){
+//		loggingInterface.printLog(LEVEL, filename, startLine, endLine, type, output);
+//	}
+
+	// --------------------------------------------------------------------------
+
+	public void showHelp() {
+		System.out.println("\nHelp:");
+//		System.out.println("  t3d[.bat] [options] (path | filename)+");
+//		System.out.println("");
+//		System.out.println("  Options (specify in any order): ");
+//		System.out.println("    --help - prints this screen");
+//		System.out.println("    --profile [profilename] - allows manual profile selection, overriding the selected default profile");
+//		System.out.println("");
+		HelpFormatter formatter = new HelpFormatter();
+		formatter.setOptionComparator(new Comparator<Option>() {
+			
+			@Override
+			public int compare(Option o1, Option o2) {
+				if (o1.getId() > o2.getId()) {
+					return 1;
+				} else {
+					return -1;
+				}
+			}
+		});
+		formatter.setSyntaxPrefix("  Usage: ");
+//		formatter.setWidth(74);
+		formatter.printHelp("t3d [options] ((--html | --xml-only) | --local-dependencies)+ (filename | path)+", "  Options: (in any order, config and at least one output format are required)",
+				new T3DOptionsHandler().getOptions(), "");
+		System.out.println("");
+	}
+	
+	// --------------------------------------------------------------------------
+	private void showDebugInfo(String[] args) {
+		if (getLogLevel().equals(LogLevel.DEBUG)) {
+			System.out.println("==================ARGS:===================");
+			for (int a = 0; a < args.length; a++) {
+				System.out.println("" + args[a]);
+			}
+			System.out.println("==================PROPERTIES:=============");
+			for(Object key : System.getProperties().keySet()) {
+				System.out.println("   "+key.toString() + " : "+System.getProperty(key.toString()));
+			}
+			System.out.println("==========================================");
+		}
+	}
+	// --------------------------------------------------------------------------
+
+	public void run(String[] args) {
+		System.out.println("T3D " + getVersionNumber());
+		System.out.println("Build " + getBuildStamp());
+		System.out.println("  TTCN-3 version supported: "
+				+ TTCN3Parser.getSupportedVersion());
+		System.out.println("==========================================");
+		try {
+			if (handleCommandLineArguments(args) == false) {
+				return;
+			}
+			showDebugInfo(args);
+			if (selectedProfileName != null) {
+				handleConfig(selectedProfileName);
+			} else {
+				handleConfig(null);
+			}
+		} catch (TerminationException e) {
+			// TODO: handle exception
+			System.out.println("ERRORING OUT!");
+		}
+		
+		TTCN3Parser.disableStatementBlockCompatibilityMode();
+		TTCN3Parser.enableStatementBlockCompatibilityMode();
+		
+		List<String> ttcn3Resources = new InputInterface(T3D.activeProfile.getResourceExtensionsRegExp(), T3D.activeProfile.getProjectExtension(),
+				T3D.activeProfile.isSettingRecursiveProcessing()).getInputFromParameterList(inputPaths);
+		ttcn3Resources = InputInterface.filterAbsoluteDuplicates(ttcn3Resources); 
+
+		if (ttcn3Resources.isEmpty()) {
+			// Terminate
+			System.out.println("No ttcn3 files found!");
+			showHelp();
+			return;
+		}
+
+		long startTime = System.currentTimeMillis();
+		TTCN3Analyzer analyzer = null;
+		
+		try {
+			System.out.println("Parsing files...");
+			for (int i = 0; i < ttcn3Resources.size(); i++) {
+				String resourcePath = ttcn3Resources.get(i);
+				analyzeFile(resourcePath);
+				TTCN3AnalyzerFlyweightFactory analyzerFactory = TTCN3AnalyzerFlyweightFactory
+						.getInstance();
+				analyzer = analyzerFactory.getTTCN3Analyzer(ttcn3Resources
+						.get(i));
+				if (analyzer.getExceptions().size() > 0) {
+
+					// TODO: in eclipse the error stream seems to be delayed
+					// somewhat
+					// -> Investigate
+					// -> The terminal seems to handle this properly in contrast
+					if (T3D.activeProfile.isSettingAbortOnError()) {
+						throw new TTCN3ParserException(
+								"Error while parsing file "
+										+ analyzer.getFilename());
+					} else {
+						try {
+							throw new TTCN3ParserException(
+									"Error while parsing file "
+											+ analyzer.getFilename());
+						} catch (TTCN3ParserException e) {
+							System.err.println(e.getLocalizedMessage());
+							for (int i1 = 0; i1 < analyzer.getExceptions()
+									.size(); i1++) {
+								System.err.println("Line "
+										+ analyzer.getExceptions().get(i1)
+												.getLine()
+										+ ": "
+										+ analyzer.getExceptions().get(i1)
+												.getMessage());
+							}
+							// e.printStackTrace();
+						}
+					}
+				}			
+			}
+			long endTime = System.currentTimeMillis();
+			long elapsed = endTime - startTime;
+			double elapsedMinutes = ((double) elapsed) / 1000.0 / 60.0;
+			System.out.println("Done parsing in " + elapsed + "ms ("
+					+ MiscTools.doubleToString(elapsedMinutes) + " minutes).");
+			
+			if (T3D.activeProfile.isStatShowLOC()) {
+				System.out.println("Total lines of code parsed: " + totalLoc);
+			}
+			
+			TTCN3AnalyzerFlyweightFactory analyzerFactory = TTCN3AnalyzerFlyweightFactory
+			.getInstance();
+			
+			System.out.println("Postprocessing...");
+			startTime = System.currentTimeMillis();
+			analyzerFactory.postProcess();
+			endTime = System.currentTimeMillis();
+			elapsed = endTime - startTime;
+			elapsedMinutes = ((double) elapsed) / 1000.0 / 60.0;
+			System.out.println("Done processing in " + elapsed + "ms ("
+					+ MiscTools.doubleToString(elapsedMinutes) + " minutes).");
+			startTime = System.currentTimeMillis();
+
+			System.out.println("==========================================");
+			//TODO: up to here mostly identical, make reusable
+			
+			//TODO: custom functionality
+			initialize();
+			handlePaths();
+			
+			//TODO: core functionality, encapsulate, split, and extract
+			for (int i = 0; i < ttcn3Resources.size(); i++) {
+				analyzer = analyzerFactory.getTTCN3Analyzer(ttcn3Resources
+						.get(i));
+				System.out.println("Preparing documentation for "
+						+ analyzer.getFilename());
+//TODO: review logging interface
+				//loggingInterface.setCurrentTTCN3File(analyzer.getFilename());
+				T3D.getLoggingInterface().setLogSourceName(analyzer.getFilename());
+				if (isGenerateMainXML() || isGenerateHTML()) {
+					T3DVisitor visitor = new T3DVisitor(xmlPrinter);
+					visitor.setFilename(analyzer.getFilename());
+					ImportVisitor importVisitor = new ImportVisitor(importPrinter);
+					importVisitor.setFilename(analyzer.getFilename());
+//					xmlPrinter.setCurrentTTCN3File(analyzer.getFilename());
+					// visitor.setFilename(analyzer.getFilename());
+					visitor.acceptDFS((LocationAST) analyzer.getParser().getAST());
+					importVisitor.acceptDFS((LocationAST) analyzer.getParser().getAST());
+				}
+				if (isGenerateDependenciesXML()) {
+					DependencyVisitor dependencyVisitor = new DependencyVisitor(depPrinter);
+					depPrinter.setCurrentTTCN3File(analyzer.getFilename());
+					dependencyVisitor.acceptDFS((LocationAST) analyzer.getParser().getAST());
+				}
+
+			}
+			endTime = System.currentTimeMillis();
+			elapsed = endTime - startTime;
+			elapsedMinutes = ((double) elapsed) / 1000.0 / 60.0;
+			System.out.println("Documentation preparation finished in "
+					+ elapsed + "ms (" + MiscTools.doubleToString(elapsedMinutes)
+					+ " minutes).");
+
+			if (T3D.activeProfile.isStatShowLOC()) {
+				System.out
+						.println("Total lines of code processed: " + totalLoc);
+			}
+
+			//TODO: custom functionality
+			handleOutput();
+
+			//TODO: move summary here
+			if (T3D.activeProfile.isStatShowSummary()) {
+//				System.out.println("Brief statistics summary of occurences in message classes:");
+//				for (MessageClass m : MessageClass.values()) {
+//					System.out.println("\t" + m.getDescription() + " : "
+//							+ m.getOccurenceCount());
+//				}
+			}
+		} catch (TTCN3BehaviorException e) {
+			System.err.println(e.getLocalizedMessage());
+		} catch (TTCN3ParserException e) {
+			// Default setting where processing is terminated in the event of a
+			// parsing error
+			System.err.println(e.getLocalizedMessage());
+			for (int i = 0; i < analyzer.getExceptions().size(); i++) {
+				System.err.println("Line "
+						+ analyzer.getExceptions().get(i).getLine() + ": "
+						+ analyzer.getExceptions().get(i).getMessage());
+			}
+			// TODO: Isolate different steps and implement a recovery mechanism:
+
+		}
+	}
+
+	private void initialize() {
+		T3D.setLoggingInterface(new LoggingInterface(T3D.activeProfile.getLoggingConfiguration()));
+		if (isGenerateMainXML() || isGenerateHTML()) {
+			xmlPrinter = new XMLPrinter();
+			importPrinter = new ImportPrinter();
+		}
+		if (isGenerateDependenciesXML()) {
+			depPrinter = new DependencyPrinter();
+		}
+		
+	}
+
+	private void handlePaths() {
+		String finalOutputPath = getFinalOutputPath(this.getDestinationPath());
+		
+		String finalXMLfilePath = finalOutputPath + File.separator + documentationXmlFile;
+		String finalDependencyfilePath = finalOutputPath + File.separator + dependencyXmlFile;
+		String finalImportfilePath = finalOutputPath + File.separator + importXmlFile;
+		String finalLogfilePath = finalOutputPath + File.separator + documentationLogFile;
+		//System.out.println("*********" + finalXMLfilePath);
+		
+		System.out.println("Output path: "+finalOutputPath);
+		
+		if (!(new File(finalOutputPath).isDirectory())) {
+			new File(finalOutputPath).mkdirs();
+		}
+		if (isGenerateMainXML() || isGenerateHTML()) {
+			xmlPrinter.setXMLPath(finalXMLfilePath);
+			importPrinter.setXMLPath(finalImportfilePath);
+		}
+		if (isGenerateDependenciesXML()) {
+			depPrinter.setXMLPath(finalDependencyfilePath);
+		}
+		//TODO: revise XML usage
+		//loggingInterface.setXMLPath(finalLogfilePath);
+	}
+
+	
+	private void handleOutput() {
+		//TODO: this is duplicated in handlePaths
+		String finalOutputPath = getFinalOutputPath(this.getDestinationPath());
+		generateXML();
+		// TODO: uncomment
+		//validateXMLoutput(finalOutputPath);
+		handleTransformation(finalOutputPath);
+	}
+
+	private String getFinalOutputPath(String outputDirectory) {
+		return MiscTools.getProperOutputPath(outputDirectory) + File.separator + MiscTools.getSubPath(inputPaths.get(0));
+	}
+
+	private void generateXML() {
+		if (isGenerateMainXML() || isGenerateHTML()) {
+			xmlPrinter.finishXML();
+			importPrinter.finishXML();
+		}
+		if (isGenerateDependenciesXML()) {
+			depPrinter.finishXML();
+		}
+		// TODO: what do we do with this one?
+		//loggingInterface.finishXML();
+	}
+
+	private void validateXMLoutput(String finalOutputPath) {
+		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+
+		factory.setValidating(true);
+
+		factory.setAttribute(
+				"http://java.sun.com/xml/jaxp/properties/schemaLanguage",
+				"http://www.w3.org/2001/XMLSchema");
+		factory.setAttribute(
+				"http://java.sun.com/xml/jaxp/properties/schemaSource",
+				new File(xsdFile));
+		try {
+			factory.newDocumentBuilder().parse("file:///"+
+					new File(finalOutputPath + "/" + documentationXmlFile).getAbsolutePath());
+		} catch (ParserConfigurationException e) {
+			System.out.println("Parser not configured: " + e.getMessage());
+		} catch (SAXException e) {
+			System.out.print("Parsing XML failed due to a "
+					+ e.getClass().getName() + ":");
+			System.out.println(e.getMessage());
+		} catch (IOException e) {
+			System.out.println("Validation failed due to an IO Error!" +
+					"\n  File: "+new File(finalOutputPath + "/" + documentationXmlFile).getAbsolutePath());
+			e.printStackTrace();
+		}
+	}
+
+	private void handleTransformation(String outputPath) {
+		long start;
+		long end;
+		long dur;
+		double durMinutes;
+		if (isGenerateHTML()) {
+			start = System.currentTimeMillis();
+			System.out.print("Generating html...");
+			xml2html(outputPath, documentationXmlFile, T3D.activeProfile.getXsltFileHTML());
+			xml2html(outputPath, importXmlFile, T3D.activeProfile.getXsltFileImport());
+			end = System.currentTimeMillis();
+			dur = end - start;
+			durMinutes = ((double) dur) / 1000.0 / 60.0;
+			System.out.println(" Generated " + (xmlPrinter.getFileCount())
+					+ " HTML files in " + dur + "ms (" + MiscTools.doubleToString(durMinutes)
+					+ "minutes),");
+
+			MiscTools.streamCopyFile(T3D.activeProfile.getCssFile(),
+					outputPath
+							+ "/html/css/"
+							+ new File(T3D.activeProfile.getCssFile())
+									.getName());
+			MiscTools.streamCopyFile(T3D.activeProfile.getJsFile(),
+					outputPath
+							+ "/html/js/"
+							+ new File(T3D.activeProfile.getJsFile())
+									.getName());
+		}
+	}
+	
+    private void xml2html(String foldername, String xmlFileName, String xsltFileName){    	
+    	System.setProperty("javax.xml.transform.TransformerFactory",
+    	"net.sf.saxon.TransformerFactoryImpl");
+    	
+    	TransformerFactory tfactory = TransformerFactory.newInstance();
+    	Transformer transformer;
+		try {
+			transformer = tfactory.newTransformer(new StreamSource(new File(xsltFileName)));
+			transformer.setParameter("folder", foldername);
+			if(activeProfile.isIncludeConstructBody())
+				transformer.setParameter("includeconstructbodies", "true");
+			else 
+				transformer.setParameter("includeconstructbodies", "false");
+			if(activeProfile.isHideConstructBody())
+				transformer.setParameter("hideconstructbodies", "true");
+			else 
+				transformer.setParameter("hideconstructbodies", "false");
+			if(activeProfile.isShowOriginalT3DocTags())
+				transformer.setParameter("showOriginalT3DocTags", "true");
+			else 
+				transformer.setParameter("showOriginalT3DocTags", "false");
+			
+	    	transformer.transform(new StreamSource(new File(foldername + "/" + xmlFileName)),
+	    	    	new StreamResult(new FileOutputStream(foldername + "/xsltlog.txt")));
+		} catch (TransformerConfigurationException e) {
+			e.printStackTrace();
+		} catch (TransformerException e) {
+			e.printStackTrace();
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		}
+   	}
+	//TODO: DUPLICATED MOSTLY
+	private boolean handleCommandLineArguments(String[] args) throws TerminationException {
+		//parseCommandLineArguments(args);
+		CommandLine commandLine = parseCommandLineArguments(args);
+		if (commandLine == null) {
+			return false;
+		}
+		String arguments[] = evaluateCommandLineOptions(commandLine);
+
+		if (commandLine.hasOption("help")) {
+			showHelp();
+			return false;
+		}
+
+		if (commandLine.hasOption("config") && arguments.length < 1) {
+			System.out.println("ERROR: Missing input location(s)");
+			showHelp();
+			return false;
+		}
+
+		for (String arg : arguments) {
+			//TODO: add validity checks
+			inputPaths.add(arg);
+		}
+		
+		return true;
+	}
+
+	// --------------------------------------------------------------------------
+	//TODO: DUPLICATE
+	private CommandLine parseCommandLineArguments(String[] args) {
+		CommandLineParser parser = new GnuParser();
+		T3DOptionsHandler optionsHandler = new T3DOptionsHandler();
+		CommandLine commandLine = null;
+		try {
+			commandLine = parser.parse(optionsHandler.getOptions(), args);
+		} catch (ParseException e) {
+			System.out.println("ERROR: " + e.getMessage() );
+			showHelp();
+		}
+		return commandLine;
+	}
+
+	// --------------------------------------------------------------------------
+	//TODO: DUPLICATED MOSTLY
+	private String[] evaluateCommandLineOptions(CommandLine commandLine) throws TerminationException {
+		this.setConfigurationFilename(commandLine.getOptionValue("config"));
+		if (commandLine.hasOption("generate-config")) {
+			this.setConfigurationFilename(commandLine.getOptionValue("generate-config"));
+			this.setGenerateNewConfiguration(true);
+		} else if (commandLine.hasOption("config")) {
+			this.setConfigurationFilename(commandLine.getOptionValue("config"));
+		} else {
+			System.out.println("ERROR: No configuration file selected!");
+			showHelp();
+			throw new TerminationException("");
+		}
+		
+		if (commandLine.hasOption("profile")) {
+			this.setSelectedProfileName(commandLine.getOptionValue("profile"));
+		}
+		boolean targetFormatSet = false;
+		if (commandLine.hasOption("local-dependencies")){
+			setGenerateDependenciesXML(true);
+			targetFormatSet = true;
+		}
+		if (commandLine.hasOption("html")){
+			setGenerateHTML(true);
+			targetFormatSet = true;
+		}
+		if (commandLine.hasOption("xml-only")){
+			setGenerateMainXML(true);
+			targetFormatSet = true;
+		}
+		
+		if (!targetFormatSet && !this.isGenerateNewConfiguration()) {
+			System.out.println("ERROR: No target output format set!");
+			showHelp();
+			System.exit(1);
+		}
+		
+		if (commandLine.hasOption("verbosity")){
+			this.selectLogLevel(commandLine.getOptionValue("verbosity"));
+		}
+
+		if (commandLine.hasOption("output-path")){
+			this.setDestinationPath(commandLine.getOptionValue("output-path"));
+		}
+
+		return commandLine.getArgs();
+	}
+	
+	// --------------------------------------------------------------------------
+
+	//TODO: THIS SHALL BE DEPRECATED NOW 
+//	private void parseCommandLineArguments(String[] args) {
+//		String key = "";
+//		String value = "";
+//		//inputPath = "";
+//
+//		boolean lastKey = false;
+//		for (int i = 0; i < args.length; i++) {
+//			if (args[i].startsWith("--")) {
+//				key = args[i].replaceAll("--", "").toLowerCase();
+//
+//				if (lastKey) {
+//					argsMap.put(key, "true");
+//					key = null;
+//					value = null;
+//					lastKey = false;
+//				}
+//
+//				lastKey = true;
+//			} else {
+//				value = args[i];
+//				if ((key != null) && (argsMap.get(key) == null)
+//						&& (key.length() > 0)) {
+//					argsMap.put(key, value);
+//					key = null;
+//					value = null;
+//				} else {
+//					inputPaths.add(value);
+//				}
+//				lastKey = false;
+//			}
+//		}
+//
+//		if (key != null) {
+//			if ((argsMap.get(key) == null) && (key.length() > 0)) {
+//				argsMap.put(key, "true");
+//			}
+//		}
+//	}
+
+	// --------------------------------------------------------------------------
+	//TODO: DUPLICATE MOSTLY
+	private void handleConfig(String specifiedProfile) throws TerminationException {
+		ConfigTools configTools = new ConfigTools(configurationClassName, configurationProfileClassName);
+		configTools.setToolVersion(getVersionNumber());
+		
+		try {
+			if (isGenerateNewConfiguration()) {
+				configTools.initializeNewDefaultConfig(getConfigurationFilename());
+				System.exit(0);
+			} else {
+				configTools.loadConfig(getConfigurationFilename());
+				activeProfile = (DocumentationProfile) configTools.selectProfile(specifiedProfile);
+				if (this.getDestinationPath()==null) {
+					setDestinationPath(T3D.activeProfile.getOutputDirectory());
+				}
+			}
+		} catch (InstantiationException e) {
+			throw new TerminationException("ERROR: Instantiation problems encountered while loading configuration profile. "+e.getMessage());
+		} catch (IllegalAccessException e) {
+			throw new TerminationException("ERROR: Instantiation problems encountered while loading configuration profile. "+e.getMessage());
+		} catch (ClassNotFoundException e) {
+			throw new TerminationException("ERROR: Instantiation problems encountered while loading configuration profile. "+e.getMessage());
+		}
+		
+		if (!isProfileVersionValid()) {
+			System.out.println("\nERROR: Selected profile \"" + activeProfile.getProfileName()
+					+ "\" has a mismatching or no version (required: \""+getVersionNumber()+"\").\n" +
+							"  Consider upgrading the profile by transfering the relevant parts to an auto-generated profile or selecting a different profile.\n");
+			throw new TerminationException("");
+		}
+	}
+	//TODO: DUPLICATE 
+	private boolean isProfileVersionValid() {
+		if (activeProfile.getProfileVersion() != null && activeProfile.getProfileVersion().equals(getVersionNumber())){
+			return true;
+		} else {
+			return false;
+		}
+	}
+	//TODO: DUPLICATE 
+	private void selectLogLevel(String logLevel) throws TerminationException{
+		boolean selected = false;
+		String possibleValues ="";
+		for (LogLevel l : LogLevel.values()){
+			if (l.toString().equals(logLevel)){
+				setLogLevel(l);
+				selected = true;
+				System.out.println("Selected log level \""+logLevel+"\"");
+			}
+			if (!l.toString().equals("FIXME") && !l.toString().equals("DEBUG"))
+			possibleValues+=l.toString()+", ";
+		}
+		if (!selected){
+			System.out.println("\nERROR: No valid log level provided! Possible values are (in ascending inclusive order): "+ possibleValues.substring(0,possibleValues.length()-2)+".");
+			throw new TerminationException("");
+		}
+		
+	}
+
+	
+
+
+	// --------------------------------------------------------------------------
+//	//TODO: should be obsolete now?
+//	List<String> findTTCN3Resources(String directory) {
+//		List<String> files = new LinkedList<String>();
+//
+//		File f = new File(directory);
+//
+//		File[] fileNames = f.listFiles(new FileFilter() {
+//			public boolean accept(File pathname) {
+//				if (pathname.getPath().endsWith(".ttcn3")
+//						|| pathname.getPath().endsWith(".ttcn")
+//						|| pathname.getPath().endsWith(".3mp"))
+//					return true;
+//				return false;
+//			}
+//		});
+//
+//		for (int i = 0; i < fileNames.length; i++) {
+//			files.add(fileNames[i].getPath());
+//		}
+//
+//		File[] directories = f.listFiles(new FileFilter() {
+//			public boolean accept(File pathname) {
+//				if (pathname.isDirectory())
+//					return true;
+//				return false;
+//			}
+//		});
+//
+//		for (int i = 0; i < directories.length; i++) {
+//			files.addAll(findTTCN3Resources(directories[i].getPath()));
+//		}
+//
+//		return files;
+//	}
+
+	// --------------------------------------------------------------------------
+	//TODO: DUPLICATED
+	private TTCN3Analyzer analyzeFile(String filename) {
+		TTCN3AnalyzerFlyweightFactory analyzerFactory = TTCN3AnalyzerFlyweightFactory
+				.getInstance();
+		analyzerFactory.setStandaloneUsage(true);
+		String code = MiscTools.readFile(filename);
+
+		int loc = MiscTools.getLOC(filename);
+		linesOfCodeMap.put(filename, loc);
+		totalLoc += loc;
+
+		System.out.println("  Parsing file: " + filename + " (LOC: "
+				+ linesOfCodeMap.get(filename) + ") ...");
+		long startTime = System.currentTimeMillis();
+
+		TTCN3Analyzer analyzer = analyzerFactory.getTTCN3Analyzer(filename,
+				code);
+		try {
+			analyzer.analyze();
+		} catch (MismatchedTokenException e) {
+			e.printStackTrace();
+		} catch (RecognitionException e) {
+			e.printStackTrace();
+		} catch (TokenStreamException e) {
+			e.printStackTrace();
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		long endTime = System.currentTimeMillis();
+		long elapsed = endTime - startTime;
+		double elapsedMinutes = ((double) elapsed) / 1000.0 / 60.0;
+
+		System.out.println("    ...done in " + elapsed + "ms ("
+				+ MiscTools.doubleToString(elapsedMinutes) + " minutes).");
+
+		return analyzer;
+	}
+
+	// --------------------------------------------------------------------------
+	//TODO: DUPLICATE
+	public static void setVersionNumber(String versionNumber) {
+		T3D.versionNumber = versionNumber;
+	}
+	//TODO: DUPLICATE	
+	public static String getVersionNumber() {
+		return versionNumber;
+	}
+
+	public static void main(String[] args) {
+		T3D tool = new T3D();
+		tool.run(args);
+	}
+	//TODO: DUPLICATE
+	public void setConfigurationFilename(String configurationFilename) {
+		this.configurationFilename = configurationFilename;
+	}
+	//TODO: DUPLICATE
+	public String getConfigurationFilename() {
+		return configurationFilename;
+	}
+	//TODO: DUPLICATE
+	public void setSelectedProfileName(String selectedProfileName) {
+		this.selectedProfileName = selectedProfileName;
+	}
+	//TODO: DUPLICATE
+	public String getSelectedProfileName() {
+		return selectedProfileName;
+	}
+	//TODO: DUPLICATE
+	public static void setLogLevel(LogLevel logLevel) {
+		T3D.logLevel = logLevel;
+	}
+	//TODO: DUPLICATE
+	public static LogLevel getLogLevel() {
+		return logLevel;
+	}
+
+	public static void setGenerateDependenciesXML(boolean generateDependenciesXML) {
+		T3D.generateDependenciesXML = generateDependenciesXML;
+	}
+
+	public static boolean isGenerateDependenciesXML() {
+		return generateDependenciesXML;
+	}
+
+	public static void setGenerateMainXML(boolean generateMainXML) {
+		T3D.generateMainXML = generateMainXML;
+	}
+
+	public static boolean isGenerateMainXML() {
+		return generateMainXML;
+	}
+
+	public static void setGenerateHTML(boolean generateHTML) {
+		T3D.generateHTML = generateHTML;
+	}
+
+	public static boolean isGenerateHTML() {
+		return generateHTML;
+	}
+
+	public static void setLoggingInterface(LoggingInterface logger) {
+		T3D.logger = logger;
+	}
+
+	public static LoggingInterface getLoggingInterface() {
+		return T3D.logger;
+	}
+
+	public void setGenerateNewConfiguration(boolean generateNewConfiguration) {
+		this.generateNewConfiguration = generateNewConfiguration;
+	}
+
+	public boolean isGenerateNewConfiguration() {
+		return generateNewConfiguration;
+	}
+
+	public void setDestinationPath(String destinationPath) {
+		this.destinationPath = destinationPath;
+	}
+
+	public String getDestinationPath() {
+		return destinationPath;
+	}
+
+	public static void setBuildStamp(String buildStamp) {
+		T3D.buildStamp = buildStamp;
+	}
+
+	public static String getBuildStamp() {
+		return buildStamp;
+	}
+
+}
Index: trunk/t3d/src/org/etsi/t3d/T3DLoggingInterface.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/T3DLoggingInterface.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/T3DLoggingInterface.java	(revision 7)
@@ -0,0 +1,112 @@
+package org.etsi.t3d;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.util.LinkedList;
+
+
+public class T3DLoggingInterface {
+	//TODO: reuse statistics
+	private PrintStream stream;
+	private int LOG_LEVEL = 1;
+	private String[] messageTypes = {"Information", "WARNING", "ERROR"};
+	private boolean firstFile = true;
+	private LinkedList<String> files = new LinkedList<String>();
+	private LinkedList<String> filesWithoutErrorsWarnings = new LinkedList<String>();
+	
+	
+	public T3DLoggingInterface(){
+	}
+	
+	private class T3DLogEvent{
+		private int level;
+		private int type; // 0 = info, 1 = warning, 2 = error
+		private String event;
+		private String lines;
+		
+		public T3DLogEvent(int level, int type, String event, String lines) {
+			this.level = level;
+			this.type = type;
+			this.event = event;
+			this.lines = lines;
+		}
+		
+		public String toString(){
+			return "<" + messageTypes[type].toLowerCase() + " level =\""+ level +"\" lines=\"" + lines.trim() + "\">" + event + "</" + messageTypes[type].toLowerCase() + ">";
+		}
+	}
+
+
+	public void printLog(int LEVEL, String filename, int startLine, int endLine, int type, String output) {
+		if (LEVEL <= this.getLOG_LEVEL()) {
+			String lines;
+			if (startLine >= endLine) {
+				lines = " " + startLine;
+			} else {
+				lines = " " + startLine + "-" + endLine;
+			}
+			String log = "    " + filename + ": " + lines + ": " + messageTypes[type] + ": " + output;
+			System.out.println(log);
+			setEvent(LEVEL, type, output, lines);
+			if(type == 1 || type == 2)
+				filesWithoutErrorsWarnings.remove(filename);
+		}
+	}
+
+	
+	private void setEvent(int level, int type, String event, String lines){
+		writeStream("\n\t\t" + new T3DLogEvent(level, type, event, lines));
+	}
+	
+	public void setLOG_LEVEL(int lOG_LEVEL) {
+		LOG_LEVEL = lOG_LEVEL;
+	}
+
+
+	public int getLOG_LEVEL() {
+		return LOG_LEVEL;
+	}
+	
+	public void setCurrentTTCN3File(String currentTTCN3File) {
+		if(!firstFile)
+			writeStream("\n\t</file>");
+		else
+			firstFile = false;
+		writeStream("\n\t<file path=\"" + currentTTCN3File + "\">");
+		files.add(currentTTCN3File);
+		filesWithoutErrorsWarnings.add(currentTTCN3File);
+	}
+	
+	private void writeStream(String content){
+		stream.print(content);
+	}
+	
+	public void finishXML(){
+			writeStream("\n\t</file>");
+		writeStream("\n</t3dlog>");
+		
+		System.out.println("\tINFORMATION:");
+		System.out.println("\t Files parsed:");
+		for(String file : files)
+			System.out.println("\t  " + file);
+		System.out.println("\t Files processed without errors/warnings:");
+		for(String file : filesWithoutErrorsWarnings)
+			System.out.println("\t  " + file);
+		System.out.println("\t Files processed with errors/warnings:");
+		for(String file : files)
+			if(!filesWithoutErrorsWarnings.contains(file))
+			System.out.println("\t  " + file);
+	}
+	
+	public void setXMLPath(String xmlpath){
+		FileOutputStream file;
+		try {
+			file = new FileOutputStream(xmlpath);
+			stream = new PrintStream(file);
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		}
+		writeStream("\n<t3dlog t3dversion=\"" + T3D.versionNumber + "\">");		
+	}
+}
Index: trunk/t3d/src/org/etsi/t3d/XMLPrinter.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/XMLPrinter.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/XMLPrinter.java	(revision 7)
@@ -0,0 +1,158 @@
+package org.etsi.t3d;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.PrintStream;
+import java.util.LinkedList;
+
+import org.etsi.common.logging.LoggingConfiguration;
+import org.etsi.common.logging.LoggingInterface;
+import org.etsi.common.logging.LoggingInterface.MessageClass;
+
+
+import elements.*;
+public class XMLPrinter {
+	private String currentTTCN3File;
+	private PrintStream stream;
+	private LinkedList<String> modules = new LinkedList<String>();
+	private int files = 0;
+	private String currentModule;
+	private LinkedList <String[]> descs = new LinkedList<String[]>();
+
+	private LoggingInterface logger = null;
+	
+	public XMLPrinter(){
+		this.logger = new LoggingInterface(T3D.activeProfile.getLoggingConfiguration());
+		this.logger.setMaximumLogLevel(T3D.getLogLevel());
+	}
+	
+	public int getFileCount(){
+		return files;
+	}
+	
+	public void setXMLPath(String xmlpath){
+		FileOutputStream file;
+		try {
+			file = new FileOutputStream(xmlpath);
+			stream = new PrintStream(file);
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		}		
+		writeStream("\n<project t3dversion=\"" + T3D.versionNumber + "\">");		
+	}
+	//adds String content to project.xml
+	private void writeStream(String content){
+		stream.print(content);
+	}
+	//adds XML representation of element to project.xml
+	public void printElement(TTCN3Element element, int line){
+		addDescriptions(element.getDescs());
+		writeStream("\n" + element.toXML(currentModule));
+		files++;
+		if(element.getType().equals("testcase") || element.getType().equals("parameter"))
+			files++;
+	}
+	// 0 = desc, 1 = file, 2 = line
+	private void addDescriptions(LinkedList<String[]> descs){
+		for(String[] desc : descs){			
+			if(!descsContain(desc))
+				this.descs.add(desc);
+		}
+	}
+	
+	private boolean descsContain(String[] desc){
+		for(String[] stringArray : descs)
+			if(stringArray[0].equals(desc[0])){
+				//TODO: out of place here, needs to be moved
+				if (T3D.activeProfile.isCheckIdenticalDescriptionTags()) {
+					String warning = "Identical @desc tag found: \""
+							+ desc[0].replaceAll("\\n", " ")
+							+ "\" ("
+							+ stringArray[1]
+							+ " "
+							+ stringArray[2]
+							+ ")";
+					this.getLoggingInterface()
+						.logWarning(Integer.valueOf(desc[2]).intValue(),
+								Integer.valueOf(desc[2]).intValue(),
+								MessageClass.DOCUMENTATION,
+								warning);
+					// TODO: revise XML usage
+					// T3D.printLog(LEVEL0, getCurrentTTCN3File(),
+					// Integer.valueOf(desc[2]).intValue(),
+					// Integer.valueOf(desc[2]).intValue(), 1, warning);
+				}
+				return true;
+			}
+		return false;
+	}
+	
+	
+	//adds XML representation of a module to project.xml and prints warnings
+	public void printModule(String name, TTCN3Comment comment, String behaviour, int line){
+		if (modules.contains(name)) {
+			int repetitionIndex = 0; 
+			while(modules.contains(name + "_"+repetitionIndex)){
+				repetitionIndex++;
+			}
+			this.getLoggingInterface().logWarning(line,
+					line,
+					MessageClass.DOCUMENTATION,
+					"Module \""+name+"\" (in file \""+this.getCurrentTTCN3File()+"\") is declared multiple times. The instance will be refererred to as \""+name+"_"+repetitionIndex+"\"!");
+
+			printModule(name+"_"+repetitionIndex,comment, behaviour, line);
+			modules.add(name+"_"+repetitionIndex);
+		} else {
+			writeStream("\n<module>\n<name>" + name + "</name>" + comment.toString()
+					+ "<behaviour>" + behaviour.replaceAll("<tab/>", "     ") + "</behaviour>"
+					+ "<modulename>" + name + "</modulename>"
+					+ "\n</module>");
+			modules.add(name);
+			files += 3;
+			currentModule = name;
+			for (String warning : comment.getWarnings()) {
+				this.getLoggingInterface().logWarning(line,
+						line,
+						MessageClass.DOCUMENTATION,
+						warning);
+				// TODO: revise XML usage
+				// T3D.printLog(LEVEL0, getCurrentTTCN3File(), line, line, 1,
+				// warning);
+			}
+		}
+	}
+	
+	//adds XML representation of a group to project.xml
+	public void printGroup(String name, String location, TTCN3Comment comment, String behaviour, String path, int line){
+			writeStream("\n<group>\n<name>" + name + "</name>\n"
+				+ "<location>" + location + "</location>"
+				+ comment.toString()
+				+ "<behaviour>" + behaviour.replaceAll("<tab/>", "     ") + "</behaviour>"
+				+ "<modulename>" + currentModule + "</modulename>"
+				+ path
+				+ "\n</group>");
+			files += 2;
+	}
+	//adds <file> elements to project.xml finishes the root element
+	public void finishXML(){
+		files = files + 3;
+		writeStream("\n</project>");
+	}
+	
+	public void setCurrentTTCN3File(String currentTTCN3File) {
+		this.currentTTCN3File = currentTTCN3File;
+	}
+
+	public String getCurrentTTCN3File() {
+		return currentTTCN3File;
+	}
+
+	public void setLoggingInterface(LoggingInterface logger) {
+		this.logger = logger;
+	}
+
+	public LoggingInterface getLoggingInterface() {
+		return logger;
+	}
+	
+}
Index: trunk/t3d/src/org/etsi/t3d/config/CommentTagsConfiguration.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/config/CommentTagsConfiguration.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/config/CommentTagsConfiguration.java	(revision 7)
@@ -0,0 +1,112 @@
+package org.etsi.t3d.config;
+
+public class CommentTagsConfiguration {
+	
+	private String descTag = "desc";
+	private String authorTag = "author";
+	private String configTag = "config";
+	private String exceptionTag = "exception";
+	private String memberTag = "member";
+	private String paramTag = "param";
+	private String purposeTag = "purpose";
+	private String remarkTag = "remark";
+	private String returnTag = "return";
+	private String seeTag = "see";
+	private String sinceTag = "since";
+	private String statusTag = "status";
+	private String urlTag = "url";
+	private String verdictTag = "verdict";
+	private String versionTag = "version";
+	
+	public String getDescTag() {
+		return descTag;
+	}
+	public void setDescTag(String descTag) {
+		this.descTag = descTag;
+	}
+	public String getAuthorTag() {
+		return authorTag;
+	}
+	public void setAuthorTag(String authorTag) {
+		this.authorTag = authorTag;
+	}
+	public String getConfigTag() {
+		return configTag;
+	}
+	public void setConfigTag(String configTag) {
+		this.configTag = configTag;
+	}
+	public String getExceptionTag() {
+		return exceptionTag;
+	}
+	public void setExceptionTag(String exceptionTag) {
+		this.exceptionTag = exceptionTag;
+	}
+	public String getMemberTag() {
+		return memberTag;
+	}
+	public void setMemberTag(String memberTag) {
+		this.memberTag = memberTag;
+	}
+	public String getParamTag() {
+		return paramTag;
+	}
+	public void setParamTag(String paramTag) {
+		this.paramTag = paramTag;
+	}
+	public String getPurposeTag() {
+		return purposeTag;
+	}
+	public void setPurposeTag(String purposeTag) {
+		this.purposeTag = purposeTag;
+	}
+	public String getRemarkTag() {
+		return remarkTag;
+	}
+	public void setRemarkTag(String remarkTag) {
+		this.remarkTag = remarkTag;
+	}
+	public String getReturnTag() {
+		return returnTag;
+	}
+	public void setReturnTag(String returnTag) {
+		this.returnTag = returnTag;
+	}
+	public String getSeeTag() {
+		return seeTag;
+	}
+	public void setSeeTag(String seeTag) {
+		this.seeTag = seeTag;
+	}
+	public String getSinceTag() {
+		return sinceTag;
+	}
+	public void setSinceTag(String sinceTag) {
+		this.sinceTag = sinceTag;
+	}
+	public String getStatusTag() {
+		return statusTag;
+	}
+	public void setStatusTag(String statusTag) {
+		this.statusTag = statusTag;
+	}
+	public String getUrlTag() {
+		return urlTag;
+	}
+	public void setUrlTag(String urlTag) {
+		this.urlTag = urlTag;
+	}
+	public String getVerdictTag() {
+		return verdictTag;
+	}
+	public void setVerdictTag(String verdictTag) {
+		this.verdictTag = verdictTag;
+	}
+	public String getVersionTag() {
+		return versionTag;
+	}
+	public void setVersionTag(String versionTag) {
+		this.versionTag = versionTag;
+	}	
+	
+}
Index: trunk/t3d/src/org/etsi/t3d/config/DocumentationProfile.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/config/DocumentationProfile.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/config/DocumentationProfile.java	(revision 7)
@@ -0,0 +1,128 @@
+package org.etsi.t3d.config;
+
+import org.etsi.common.configuration.ConfigurationProfile;
+
+public class DocumentationProfile extends ConfigurationProfile {
+
+	private CommentTagsConfiguration commentTagsConfiguration = new CommentTagsConfiguration();
+	
+	private boolean includeConstructBody = true;
+	private boolean hideConstructBody = false;
+	private boolean showOriginalT3DocTags = false;
+	private boolean checkUndocumentedParameters = true;
+	private boolean checkConsistentTagUsage = true;
+	private boolean checkIdenticalDescriptionTags = true;
+	private boolean checkCyclicImports = true;
+	
+	private String cssFile = System.getenv("T3D_HOME")+"/css/doc.css";
+	private String jsFile = System.getenv("T3D_HOME")+"/js/doc.js";
+	private String xsltFileHTML = System.getenv("T3D_HOME")+"/xslt/html.xsl";
+	private String xsltFileImport = System.getenv("T3D_HOME")+"/xslt/html_import.xsl";
+
+	private String outputDirectory = "DOCUMENTATION";
+
+	public String getJsFile() {
+		return jsFile;
+	}
+
+	public void setJsFile(String jsFile) {
+		this.jsFile = jsFile;
+	}
+
+	public String getOutputDirectory() {
+		return outputDirectory;
+	}
+
+	public void setOutputDirectory(String outputDirectory) {
+		this.outputDirectory = outputDirectory;
+	}
+
+	public void setCssFile(String cssFile) {
+		this.cssFile = cssFile;
+	}
+
+	public String getCssFile() {
+		return cssFile;
+	}
+
+	public void setXsltFileHTML(String xsltFileHTML) {
+		this.xsltFileHTML = xsltFileHTML;
+	}
+	
+	public String getXsltFileHTML() {
+		return xsltFileHTML;
+	}
+
+	public void setIncludeConstructBody(boolean includeConstructBody) {
+		this.includeConstructBody = includeConstructBody;
+	}
+
+	public boolean isIncludeConstructBody() {
+		return includeConstructBody;
+	}
+
+	public boolean isHideConstructBody() {
+		return hideConstructBody && includeConstructBody;
+	}
+
+	public void setHideConstructBody(boolean hideConstructBody) {
+		this.hideConstructBody = hideConstructBody;
+	}
+
+	public boolean isCheckUndocumentedParameters() {
+		return checkUndocumentedParameters;
+	}
+
+	public void setCheckUndocumentedParameters(boolean checkUndocumentedParameters) {
+		this.checkUndocumentedParameters = checkUndocumentedParameters;
+	}
+
+	public boolean isShowOriginalT3DocTags() {
+		return showOriginalT3DocTags;
+	}
+
+	public void setShowOriginalT3DocTags(boolean showOriginalT3DocTags) {
+		this.showOriginalT3DocTags = showOriginalT3DocTags;
+	}
+
+	public boolean isCheckCyclicImports() {
+		return checkCyclicImports;
+	}
+
+	public void setCheckCyclicImports(boolean checkCyclicImports) {
+		this.checkCyclicImports = checkCyclicImports;
+	}
+
+	public String getXsltFileImport() {
+		return xsltFileImport;
+	}
+
+	public void setXsltFileImport(String xsltFileImport) {
+		this.xsltFileImport = xsltFileImport;
+	}
+
+	public void setCheckConsistentTagUsage(boolean checkConsistentTagUsage) {
+		this.checkConsistentTagUsage = checkConsistentTagUsage;
+	}
+
+	public boolean isCheckConsistentTagUsage() {
+		return checkConsistentTagUsage;
+	}
+
+	public void setCheckIdenticalDescriptionTags(
+			boolean checkIdenticalDescriptionTags) {
+		this.checkIdenticalDescriptionTags = checkIdenticalDescriptionTags;
+	}
+
+	public boolean isCheckIdenticalDescriptionTags() {
+		return checkIdenticalDescriptionTags;
+	}
+
+	public void setCommentTagConfiguration(CommentTagsConfiguration commentTagsConfiguration) {
+		this.commentTagsConfiguration = commentTagsConfiguration;
+	}
+
+	public CommentTagsConfiguration getCommentTagsConfiguration() {
+		return commentTagsConfiguration;
+	}
+}
Index: trunk/t3d/src/org/etsi/t3d/config/T3DConfig.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/config/T3DConfig.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/config/T3DConfig.java	(revision 7)
@@ -0,0 +1,6 @@
+package org.etsi.t3d.config;
+
+import org.etsi.common.configuration.ToolConfiguration;
+
+public class T3DConfig extends ToolConfiguration{
+}
Index: trunk/t3d/src/org/etsi/t3d/config/T3DOptionsHandler.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/config/T3DOptionsHandler.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/config/T3DOptionsHandler.java	(revision 7)
@@ -0,0 +1,27 @@
+package org.etsi.t3d.config;
+
+import org.etsi.common.configuration.OptionWithID;
+import org.etsi.common.configuration.OptionsHandler;
+
+
+public class T3DOptionsHandler extends OptionsHandler {
+
+	public T3DOptionsHandler() {
+		super();
+		this.initializeCustomOptions();
+	}
+
+	private void initializeCustomOptions() {
+		//TODO: add arguments ?
+		OptionWithID optionWithID;
+		optionWithID = new OptionWithID(21, "html", "Generate HTML documentation, including intermediate XML files");
+		getOptions().addOption(optionWithID);
+		
+		optionWithID = new OptionWithID(22, "xml-only", "Generate intermediate XML files only");
+		getOptions().addOption(optionWithID);
+
+		optionWithID = new OptionWithID(23, "local-dependencies", "Generate local dependencies XML file\n");
+		getOptions().addOption(optionWithID);
+
+	}
+}
Index: trunk/t3d/src/org/etsi/t3d/exceptions/TTCN3BehaviorException.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/exceptions/TTCN3BehaviorException.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/exceptions/TTCN3BehaviorException.java	(revision 7)
@@ -0,0 +1,11 @@
+package org.etsi.t3d.exceptions;
+
+public class TTCN3BehaviorException extends Exception {
+
+	private static final long serialVersionUID = 3801467473799856594L;
+
+	public TTCN3BehaviorException(String message) {
+		super("TTCN-3 Behavior Exception: " + message);
+	}
+
+}
Index: trunk/t3d/src/org/etsi/t3d/exceptions/TTCN3ParserException.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/exceptions/TTCN3ParserException.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/exceptions/TTCN3ParserException.java	(revision 7)
@@ -0,0 +1,11 @@
+package org.etsi.t3d.exceptions;
+
+public class TTCN3ParserException extends Exception {
+
+	private static final long serialVersionUID = -207414866662976520L;
+
+	public TTCN3ParserException(String message) {
+		super("TTCN-3 Parser Exception: " + message);
+	}
+
+}
Index: trunk/t3d/src/org/etsi/t3d/visitor/AbstractVisitor.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/visitor/AbstractVisitor.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/visitor/AbstractVisitor.java	(revision 7)
@@ -0,0 +1,3388 @@
+//This class has been generated automatically. Do not modify it by hand!
+package org.etsi.t3d.visitor;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Queue;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.LocationAST;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3ParserTokenTypes;
+//import de.ugoe.cs.swe.t3simexec.exceptions.TTCN3BehaviorException;
+import org.etsi.t3d.exceptions.TTCN3BehaviorException;
+
+public abstract class AbstractVisitor {
+
+    public int visitedNodeCount;
+
+    public ContinueStatus visitAddExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAddressRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAliveKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAliveOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllAltstepsWithExcept(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllCompsAllPortsSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllConnectionsSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllConstsWithExcept(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllFunctionsWithExcept(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllGroupsWithExcept(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllModuleParWithExcept(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllPortsSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllSignaturesWithExcept(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllTemplsWithExcept(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllTestcasesWithExcept(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllTypesWithExcept(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllWithExcepts(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltstepInstance(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltstepLocalDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltstepLocalDefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltstepRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltstepRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAndExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAnyTypeKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBitAndExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBitNotExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBitOrExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBitXorExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBreakStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCaseKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCheckPortOpsPresent(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCompenentIdentifierOrLiteral(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComponentIdentifierOrLiteral(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComponentReferenceOrLiteral(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitConstRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitContinueStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDefaultKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDerivedRefWithParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEqualExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptAltstepSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptConstSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptElement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptFunctionSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptGroupRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptGroupSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptModuleParSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptSignatureSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptTemplateSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptTestcaseSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptTypeDefSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptsDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExtendsKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFloatDotNotation(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFloatENotation(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFromClausePresent(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFullGroupIdentifier(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFullGroupIdentifierWithExcept(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGroupRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGroupRefListWithExcept(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportAltstepSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportModuleParSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitKillKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitKillTCStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitKilledStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLogItem(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModuleDefinitionList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModuleParRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMulExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNestedEnumDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNestedRecordDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNestedRecordOfDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNestedSetDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNestedSetOfDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNestedTypeDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNestedUnionDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNotExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOmitValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortRedirectSymbol(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortRedirectWithValueAndParam(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRedirectPresent(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRedirectWithParamSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRedirectWithValueAndParamSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRelExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRepeatStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRestrictedTemplate(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSelectCase(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSelectCaseBody(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSelectCaseConstruct(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSelectKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitShiftExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSignatureRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSingleConnectionSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSingleOrMultiConnectionSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSingleTimerInstance(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTempVarList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateRestriction(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTestcaseRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTimerList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTypeRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUnaryExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNameForm(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNumberForm(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNameAndNumberForm(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVariationKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDefinitiveIdentifier(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDefinitiveNumberForm(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitXorExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDefinitiveNameAndNumberForm(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitActivateOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAddOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAddressKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAddressRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAddressValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllOrSignatureList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllOrTypeList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllPort(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAllowedValues(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltConstruct(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltGuardChar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltGuardElement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltGuardElements(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltGuardList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltstepDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAltstepKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAnd4b(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAnd(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAnyKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAnyOrOmit(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAnyValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitArrayBounds(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitArrayDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitArrayDefRange(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitArrayElementConstExpressionList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitArrayElementExpressionList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitArrayElementSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitArrayElementSpecList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitArrayExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitArrayOrBitRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitArrayValueOrAttrib(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAssignment(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAssignmentChar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAssignmentList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAttribKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAttribQualifier(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAttribSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBaseTemplate(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBasicStatements(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBeginChar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBehaviourStatements(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBinOrMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBitOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBitStringKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBitStringMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBitStringValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBooleanExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBooleanKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBooleanValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCallBodyGuard(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCallBodyOps(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCallBodyStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCallBodyStatementList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCallParameters(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCallStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCallTimerValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCatchOpParameter(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCatchStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCell(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCharKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCharStringKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCharStringMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCharStringPattern(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCharStringValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCharStringValueId(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCheckParameter(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCheckStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitClearStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitColon(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComma(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCommunicationStatements(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComplement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComponentDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComponentDefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComponentElementDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComponentId(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComponentIdentifier(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComponentRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComponentType(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitComponentRefAssignment(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCompoundConstExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCompoundExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitConditionalConstruct(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitConfigSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitConfigurationOps(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitConfigurationStatements(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitConnectStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitConstDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitConstList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitConstantExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitControlStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitControlStatementOrDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitControlStatementOrDefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCreateOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCstring(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDash(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDeactivateStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDefIndentClose(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDefIndentOpen(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDefKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDefOrFieldRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDefOrFieldRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDerivedDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDerivedRegWithParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDirection(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDisconnectStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDisplayKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDoWhileStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDoneStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDot(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDoubleColon(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitElseClause(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitElseIfClause(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitElseIfClauses(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitElseStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEncodeKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEndChar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEnumDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEnumeratedValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEnumeration(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEnumerationList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEqual(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitError(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptionSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExceptionTypeList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExtConstDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExtFunctionDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExtendedFieldReference(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExtensionKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitExtraMatchingAttributes(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFactor(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFail(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFalse(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFieldConstExpressionList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFieldConstExpressionSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFieldExpressionList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFieldExpressionSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFieldReference(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFieldSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFieldSpecList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFieldValueOrAttrib(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFinal(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFloatKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFloatValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitForStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFormalPortPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFormalTemplatePar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFormalTimerPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFormalTypePar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFormalValuePar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFromClause(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionActualParAssignment(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFriendKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFriendModuleDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionActualPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionActualParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionBody(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionLocalDefOrInst(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionLocalDefOrInstList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionStatementList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionFormalPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionInstance(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionLocalDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionLocalInst(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFunctionStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGetCallStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGetLocalVerdict(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGetReplyStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGlobalModuleId(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGotoStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGroup(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGroupDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGuardOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGuardStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitHexOrMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitHexStringKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitHexStringMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitHexStringValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitHaltStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitIdentifier(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitIfPresentMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportAllSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportConstSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportElement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportFromSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportFunctionSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportGroupSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportNamedAltSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportSignatureSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportTemplateSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportTestcaseSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitImportTypeDefSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitInLineTemplate(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitInOutParKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitInParKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitInconc(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitInfinity(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitInitial(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitIntegerKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitIntegerValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitInterleavedAction(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitInterleavedConstruct(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitInterleavedGuard(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitInterleavedGuardElement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitInterleavedGuardList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitKilledKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLParen(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLabelStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLanguageSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLengthMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLessorequal(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLessthan(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLogStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLoopConstruct(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLowerBound(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMTCOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMapStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMatchOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMatchingSymbol(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMessageAttribs(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMessageList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMinus(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMixedAttribs(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMixedList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMod(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModifiesKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModuleControlBody(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModuleControlPart(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModuleDefinition(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModuleDefinitionsList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModuleDefinitionsPart(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModuleId(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModulePar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModuleParDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitModuleParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMoreorequal(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMorethan(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMultiWithAttrib(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMultiplyOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMultitypedModuleParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedAltActualPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedAltActualParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedAltDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedAltFormalPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedAltFormalParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedAltInstance(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedAltList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedAltRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedAltRefList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNamedValueList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNoBlockKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNone(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNot4b(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNot(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNotUsedOrExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNotUsedSymbol(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNotequals(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNowaitKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNull(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNumber(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOctOrMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOctetStringKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOctetStringMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOctetStringValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOmitKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOpCall(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOpValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOptionalKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOr4b(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOr(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOutParKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOverrideKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitParRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitParaAssignmentList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitParaSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPass(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPermutationMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPlane(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPlus(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPort(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortCallBody(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortCallOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortCatchOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortCheckOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortClearOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortDefAttribs(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortDefBody(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortElement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortGetCallOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortGetReplyOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortInstance(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortOrAll(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortOrAny(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortRaiseOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortReceiveOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortRedirect(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortRedirectWithParam(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortReplyOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortSendOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortStartOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortStopOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortTriggerOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortType(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPredefinedType(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPredefinedValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPrimary(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitProcOrType(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitProcOrTypeList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitProcedureAttribs(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitProcedureList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitProduct(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPortHaltOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPrivateKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPublicKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitQuadruple(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitQuestionMark(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRParen(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRaiseStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRange(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRangeDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRangeOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitReadTimerOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitReceiveParameter(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitReceiveStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRecordDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRecordOfDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRecordRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRecursiveKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitReferencedType(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitReferencedValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRelOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRem(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitReplyStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitReturnStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitReturnType(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRow(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRunningOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRunningTimerOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRunsOnSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSUTAction(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSUTStatements(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSelfOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSemiColon(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSendParameter(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSendStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSenderSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSetDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSetLocalVerdict(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSetOfDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitShiftOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSignature(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSignatureDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSignatureFormalPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSignatureFormalParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSignatureList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSimpleExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSimpleExpressions(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSingleConstDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSingleExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSingleQuote(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSingleTempVarInstance(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSingleValueOrAttrib(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSingleVarInstance(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSingleValueSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSingleWithAttrib(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSlash(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSquareClose(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSquareOpen(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStartStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStartTCStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStartTimerStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStatementBlock(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStep(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStopStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStopTCStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStopTimerStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStringAnyOrOmit(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStringAnyValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStringLength(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStringMatchOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStringOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStructDefBody(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStructDefFormalPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStructDefFormalParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStructFieldDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStructFieldRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStructOfDefBody(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitStructuredTypeDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSubExpression(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSubTypeDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSubTypeSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSubsetMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSupersetMatch(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSystemOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSystemSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTTCN3File(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTTCN3Module(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTTCN3ModuleId(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateActualPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateActualParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateBody(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateFormalPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateFormalParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateInstanceAssignment(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateInstance(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateOps(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTemplateRefWithParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTerm(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTestcaseActualParAssignment(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTestcaseActualPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTestcaseActualParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTestcaseDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTestcaseInstance(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTestcaseRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTimeoutKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTimeoutStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTimerInstance(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTimerKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTimerOps(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTimerRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTimerRefOrAll(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTimerRefOrAny(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTimerStatements(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTimerValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitToClause(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTriggerStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTrue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitType(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTypeActualPar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTypeActualParList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTypeDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTypeDefIdentifier(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTypeList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTypeReference(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUnaryOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUnderscore(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUnionDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUnionDefBody(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUnionFieldDef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUniversalChar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUniversalCharString(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUniversalKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUnmapStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUpperBound(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitValueList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitValueMatchSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitValueOrAttribList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitValueOrRange(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitValueParOrTypePar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitValueReference(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitValueSpec(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitValueofOp(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVarInitialValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVarInstance(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVarList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVariableAssignment(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVariableEntry(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVariableList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVariableRef(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVerdictOps(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVerdictStatements(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVerdictTypeKeyword(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVerdictTypeValue(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVisibility(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitWhileStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitWithAttribList(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitWithStatement(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitXor4b(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitXor(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBSTRING(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBSTRINGMATCH(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDOT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFLOATVALUE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitHSTRING(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitHSTRINGMATCH(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOSTRING(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOSTRINGMATCH(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRANGEOP(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitACTION(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitACTIVATE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitADDRESS(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitALIVE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitALL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitALT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitALTSTEP(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAND(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAND4B(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitANY(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitANYTYPE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBITSTRING(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBOOLEAN(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBREAK(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCALL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCASE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCATCH(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCHAR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCHARSTRING(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCHECK(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCLEAR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCOMPLEMENT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCOMPONENT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCONNECT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCONST(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCONTINUE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCONTROL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCREATE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDEACTIVATE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDEFAULT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDISCONNECT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDISPLAY(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDO(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDONE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitELSE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitENCODE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitENUMERATED(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitERROR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEXCEPT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEXCEPTION(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEXECUTE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEXTENDS(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEXTENSION(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEXTERNAL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFAIL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFALSE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFLOAT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFOR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFROM(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFUNCTION(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitFRIEND(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGETCALL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGETREPLY(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGETVERDICT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGOTO(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGROUP(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitHALT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitHEXSTRING(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitIF(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitIFPRESENT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitIMPORT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitIN(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitINCONC(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitINFINITY(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitINOUT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitINTEGER(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitINTERLEAVE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitKILL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitKILLED(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLABEL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLANGUAGE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLENGTH(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLOG(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMAP(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMATCH(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMESSAGE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMIXED(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMOD(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMODIFIES(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMODULE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMODULEPAR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMTC(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNOBLOCK(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNONE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNOT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNOT4B(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNOWAIT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNULL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOBJID(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOCTETSTRING(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOF(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOMIT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitON(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOPTIONAL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOR4B(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOUT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOVERRIDE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPARAM(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPASS(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPATTERN(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPERMUTATION(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPORT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPRESENT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPRIVATE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPROCEDURE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPUBLIC(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRAISE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitREAD(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRECEIVE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRECORD(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRECURSIVE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitREM(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitREPEAT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitREPLY(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRETURN(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRUNNING(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRUNS(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSELECT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSELF(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSEND(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSENDER(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSET(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSETVERDICT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSIGNATURE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSTART(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSTOP(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSUBSET(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSUPERSET(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSYSTEM(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTEMPLATE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTESTCASE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTIMEOUT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTIMER(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTO(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTRIGGER(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTRUE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitTYPE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUNION(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUNIVERSAL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUNMAP(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVALUE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVAR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVARIANT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitVERDICTTYPE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitWHILE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitWITH(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitXOR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitXOR4B(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitWS(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSL_COMMENT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitML_COMMENT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitIDENTIFIER(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitASSIGNMENTCHAR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPORTREDIRECTSYMBOL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBEGINCHAR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCSTRING(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSTRING(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNUMBER(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEXPONENT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSEMICOLON(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCOMMA(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDOUBLECOLON(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitCOLON(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUNDERSCORE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitENDCHAR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSQUAREOPEN(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSQUARECLOSE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLPAREN(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitRPAREN(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLESSTHAN(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMORETHAN(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNOTEQUALS(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMOREOREQUAL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLESSOREQUAL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitEQUAL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPLUS(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitMINUS(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSTAR(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSLASH(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSINGLEQUOTE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDOUBLEQUOTE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitQUESTIONMARK(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSHIFTLEFT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSHIFTRIGHT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitROTATELEFT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitROTATERIGHT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSTRINGANYVALUE(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSTRINGANYOROMIT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitQUOTESYMBOL(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSTRINGOP(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitZero(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNonzeronum(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNonzeronumber(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitDecimalnumber(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitNum(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitBIN(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitHEX(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOCT(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitChar(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitGeneralTextCharacter(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitAlphanumeric(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLetter(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitUppercaseLetter(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitLowercaseLetter(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSpecial(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOtherSpecial(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitOtherCharacter(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitSpace(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+    public ContinueStatus visitPreProcessorMacro(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
+
+    public ContinueStatus visit(LocationAST node) throws TTCN3BehaviorException {
+        visitedNodeCount++;
+        ContinueStatus continueStatus;
+        switch(node.getType()) {
+            case TTCN3ParserTokenTypes.AddExpression:
+                            continueStatus=visitAddExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AddressRefList:
+                            continueStatus=visitAddressRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AliveKeyword:
+                            continueStatus=visitAliveKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AliveOp:
+                            continueStatus=visitAliveOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllAltstepsWithExcept:
+                            continueStatus=visitAllAltstepsWithExcept(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllCompsAllPortsSpec:
+                            continueStatus=visitAllCompsAllPortsSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllConnectionsSpec:
+                            continueStatus=visitAllConnectionsSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllConstsWithExcept:
+                            continueStatus=visitAllConstsWithExcept(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllFunctionsWithExcept:
+                            continueStatus=visitAllFunctionsWithExcept(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllGroupsWithExcept:
+                            continueStatus=visitAllGroupsWithExcept(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllModuleParWithExcept:
+                            continueStatus=visitAllModuleParWithExcept(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllPortsSpec:
+                            continueStatus=visitAllPortsSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllSignaturesWithExcept:
+                            continueStatus=visitAllSignaturesWithExcept(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllTemplsWithExcept:
+                            continueStatus=visitAllTemplsWithExcept(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllTestcasesWithExcept:
+                            continueStatus=visitAllTestcasesWithExcept(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllTypesWithExcept:
+                            continueStatus=visitAllTypesWithExcept(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllWithExcepts:
+                            continueStatus=visitAllWithExcepts(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltstepInstance:
+                            continueStatus=visitAltstepInstance(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltstepLocalDef:
+                            continueStatus=visitAltstepLocalDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltstepLocalDefList:
+                            continueStatus=visitAltstepLocalDefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltstepRef:
+                            continueStatus=visitAltstepRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltstepRefList:
+                            continueStatus=visitAltstepRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AndExpression:
+                            continueStatus=visitAndExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AnyTypeKeyword:
+                            continueStatus=visitAnyTypeKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllRef:
+                            continueStatus=visitAllRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BitAndExpression:
+                            continueStatus=visitBitAndExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BitNotExpression:
+                            continueStatus=visitBitNotExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BitOrExpression:
+                            continueStatus=visitBitOrExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BitXorExpression:
+                            continueStatus=visitBitXorExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BreakStatement:
+                            continueStatus=visitBreakStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CaseKeyword:
+                            continueStatus=visitCaseKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CheckPortOpsPresent:
+                            continueStatus=visitCheckPortOpsPresent(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CompenentIdentifierOrLiteral:
+                            continueStatus=visitCompenentIdentifierOrLiteral(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ComponentIdentifierOrLiteral:
+                            continueStatus=visitComponentIdentifierOrLiteral(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ComponentReferenceOrLiteral:
+                            continueStatus=visitComponentReferenceOrLiteral(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ConstRefList:
+                            continueStatus=visitConstRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ContinueStatement:
+                            continueStatus=visitContinueStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DefaultKeyword:
+                            continueStatus=visitDefaultKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DerivedRefWithParList:
+                            continueStatus=visitDerivedRefWithParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EqualExpression:
+                            continueStatus=visitEqualExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptAltstepSpec:
+                            continueStatus=visitExceptAltstepSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptConstSpec:
+                            continueStatus=visitExceptConstSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptElement:
+                            continueStatus=visitExceptElement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptFunctionSpec:
+                            continueStatus=visitExceptFunctionSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptGroupRefList:
+                            continueStatus=visitExceptGroupRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptGroupSpec:
+                            continueStatus=visitExceptGroupSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptModuleParSpec:
+                            continueStatus=visitExceptModuleParSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptSignatureSpec:
+                            continueStatus=visitExceptSignatureSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptSpec:
+                            continueStatus=visitExceptSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptTemplateSpec:
+                            continueStatus=visitExceptTemplateSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptTestcaseSpec:
+                            continueStatus=visitExceptTestcaseSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptTypeDefSpec:
+                            continueStatus=visitExceptTypeDefSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptsDef:
+                            continueStatus=visitExceptsDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExtendsKeyword:
+                            continueStatus=visitExtendsKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FloatDotNotation:
+                            continueStatus=visitFloatDotNotation(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FloatENotation:
+                            continueStatus=visitFloatENotation(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FromClausePresent:
+                            continueStatus=visitFromClausePresent(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FullGroupIdentifier:
+                            continueStatus=visitFullGroupIdentifier(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FullGroupIdentifierWithExcept:
+                            continueStatus=visitFullGroupIdentifierWithExcept(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionRefList:
+                            continueStatus=visitFunctionRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GroupRefList:
+                            continueStatus=visitGroupRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GroupRefListWithExcept:
+                            continueStatus=visitGroupRefListWithExcept(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportAltstepSpec:
+                            continueStatus=visitImportAltstepSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportModuleParSpec:
+                            continueStatus=visitImportModuleParSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.KillKeyword:
+                            continueStatus=visitKillKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.KillTCStatement:
+                            continueStatus=visitKillTCStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.KilledStatement:
+                            continueStatus=visitKilledStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LogItem:
+                            continueStatus=visitLogItem(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModuleDefinitionList:
+                            continueStatus=visitModuleDefinitionList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModuleParRefList:
+                            continueStatus=visitModuleParRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MulExpression:
+                            continueStatus=visitMulExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NestedEnumDef:
+                            continueStatus=visitNestedEnumDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NestedRecordDef:
+                            continueStatus=visitNestedRecordDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NestedRecordOfDef:
+                            continueStatus=visitNestedRecordOfDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NestedSetDef:
+                            continueStatus=visitNestedSetDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NestedSetOfDef:
+                            continueStatus=visitNestedSetOfDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NestedTypeDef:
+                            continueStatus=visitNestedTypeDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NestedUnionDef:
+                            continueStatus=visitNestedUnionDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NotExpression:
+                            continueStatus=visitNotExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OmitValue:
+                            continueStatus=visitOmitValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortRedirectSymbol:
+                            continueStatus=visitPortRedirectSymbol(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortRedirectWithValueAndParam:
+                            continueStatus=visitPortRedirectWithValueAndParam(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RedirectPresent:
+                            continueStatus=visitRedirectPresent(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RedirectWithParamSpec:
+                            continueStatus=visitRedirectWithParamSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RedirectWithValueAndParamSpec:
+                            continueStatus=visitRedirectWithValueAndParamSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RelExpression:
+                            continueStatus=visitRelExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RepeatStatement:
+                            continueStatus=visitRepeatStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RestrictedTemplate:
+                            continueStatus=visitRestrictedTemplate(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SelectCase:
+                            continueStatus=visitSelectCase(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SelectCaseBody:
+                            continueStatus=visitSelectCaseBody(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SelectCaseConstruct:
+                            continueStatus=visitSelectCaseConstruct(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SelectKeyword:
+                            continueStatus=visitSelectKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ShiftExpression:
+                            continueStatus=visitShiftExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SignatureRefList:
+                            continueStatus=visitSignatureRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SingleConnectionSpec:
+                            continueStatus=visitSingleConnectionSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SingleOrMultiConnectionSpec:
+                            continueStatus=visitSingleOrMultiConnectionSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SingleTimerInstance:
+                            continueStatus=visitSingleTimerInstance(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TempVarList:
+                            continueStatus=visitTempVarList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateRefList:
+                            continueStatus=visitTemplateRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateRestriction:
+                            continueStatus=visitTemplateRestriction(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TestcaseRefList:
+                            continueStatus=visitTestcaseRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TimerList:
+                            continueStatus=visitTimerList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TypeRefList:
+                            continueStatus=visitTypeRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UnaryExpression:
+                            continueStatus=visitUnaryExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NameForm:
+                            continueStatus=visitNameForm(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NumberForm:
+                            continueStatus=visitNumberForm(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NameAndNumberForm:
+                            continueStatus=visitNameAndNumberForm(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VariationKeyword:
+                            continueStatus=visitVariationKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DefinitiveIdentifier:
+                            continueStatus=visitDefinitiveIdentifier(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DefinitiveNumberForm:
+                            continueStatus=visitDefinitiveNumberForm(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.XorExpression:
+                            continueStatus=visitXorExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DefinitiveNameAndNumberForm:
+                            continueStatus=visitDefinitiveNameAndNumberForm(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ActivateOp:
+                            continueStatus=visitActivateOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AddOp:
+                            continueStatus=visitAddOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AddressKeyword:
+                            continueStatus=visitAddressKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AddressRef:
+                            continueStatus=visitAddressRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AddressValue:
+                            continueStatus=visitAddressValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllKeyword:
+                            continueStatus=visitAllKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllOrSignatureList:
+                            continueStatus=visitAllOrSignatureList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllOrTypeList:
+                            continueStatus=visitAllOrTypeList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllPort:
+                            continueStatus=visitAllPort(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AllowedValues:
+                            continueStatus=visitAllowedValues(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltConstruct:
+                            continueStatus=visitAltConstruct(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltGuardChar:
+                            continueStatus=visitAltGuardChar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltGuardElement:
+                            continueStatus=visitAltGuardElement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltGuardElements:
+                            continueStatus=visitAltGuardElements(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltGuardList:
+                            continueStatus=visitAltGuardList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltKeyword:
+                            continueStatus=visitAltKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltstepDef:
+                            continueStatus=visitAltstepDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AltstepKeyword:
+                            continueStatus=visitAltstepKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.And4b:
+                            continueStatus=visitAnd4b(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.And:
+                            continueStatus=visitAnd(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AnyKeyword:
+                            continueStatus=visitAnyKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AnyOrOmit:
+                            continueStatus=visitAnyOrOmit(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AnyValue:
+                            continueStatus=visitAnyValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ArrayBounds:
+                            continueStatus=visitArrayBounds(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ArrayDef:
+                            continueStatus=visitArrayDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ArrayDefRange:
+                            continueStatus=visitArrayDefRange(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ArrayElementConstExpressionList:
+                            continueStatus=visitArrayElementConstExpressionList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ArrayElementExpressionList:
+                            continueStatus=visitArrayElementExpressionList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ArrayElementSpec:
+                            continueStatus=visitArrayElementSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ArrayElementSpecList:
+                            continueStatus=visitArrayElementSpecList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ArrayExpression:
+                            continueStatus=visitArrayExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ArrayOrBitRef:
+                            continueStatus=visitArrayOrBitRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ArrayValueOrAttrib:
+                            continueStatus=visitArrayValueOrAttrib(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Assignment:
+                            continueStatus=visitAssignment(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AssignmentChar:
+                            continueStatus=visitAssignmentChar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AssignmentList:
+                            continueStatus=visitAssignmentList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AttribKeyword:
+                            continueStatus=visitAttribKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AttribQualifier:
+                            continueStatus=visitAttribQualifier(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AttribSpec:
+                            continueStatus=visitAttribSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BaseTemplate:
+                            continueStatus=visitBaseTemplate(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BasicStatements:
+                            continueStatus=visitBasicStatements(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BeginChar:
+                            continueStatus=visitBeginChar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BehaviourStatements:
+                            continueStatus=visitBehaviourStatements(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BinOrMatch:
+                            continueStatus=visitBinOrMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BitOp:
+                            continueStatus=visitBitOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BitStringKeyword:
+                            continueStatus=visitBitStringKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BitStringMatch:
+                            continueStatus=visitBitStringMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BitStringValue:
+                            continueStatus=visitBitStringValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BooleanExpression:
+                            continueStatus=visitBooleanExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BooleanKeyword:
+                            continueStatus=visitBooleanKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BooleanValue:
+                            continueStatus=visitBooleanValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CallBodyGuard:
+                            continueStatus=visitCallBodyGuard(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CallBodyOps:
+                            continueStatus=visitCallBodyOps(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CallBodyStatement:
+                            continueStatus=visitCallBodyStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CallBodyStatementList:
+                            continueStatus=visitCallBodyStatementList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CallParameters:
+                            continueStatus=visitCallParameters(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CallStatement:
+                            continueStatus=visitCallStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CallTimerValue:
+                            continueStatus=visitCallTimerValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CatchOpParameter:
+                            continueStatus=visitCatchOpParameter(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CatchStatement:
+                            continueStatus=visitCatchStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Cell:
+                            continueStatus=visitCell(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CharKeyword:
+                            continueStatus=visitCharKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CharStringKeyword:
+                            continueStatus=visitCharStringKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CharStringMatch:
+                            continueStatus=visitCharStringMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CharStringPattern:
+                            continueStatus=visitCharStringPattern(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CharStringValue:
+                            continueStatus=visitCharStringValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CharStringValueId:
+                            continueStatus=visitCharStringValueId(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CheckParameter:
+                            continueStatus=visitCheckParameter(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CheckStatement:
+                            continueStatus=visitCheckStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ClearStatement:
+                            continueStatus=visitClearStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Colon:
+                            continueStatus=visitColon(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Comma:
+                            continueStatus=visitComma(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CommunicationStatements:
+                            continueStatus=visitCommunicationStatements(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Complement:
+                            continueStatus=visitComplement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ComponentDef:
+                            continueStatus=visitComponentDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ComponentDefList:
+                            continueStatus=visitComponentDefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ComponentElementDef:
+                            continueStatus=visitComponentElementDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ComponentId:
+                            continueStatus=visitComponentId(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ComponentIdentifier:
+                            continueStatus=visitComponentIdentifier(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ComponentRef:
+                            continueStatus=visitComponentRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ComponentType:
+                            continueStatus=visitComponentType(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ComponentRefAssignment:
+                            continueStatus=visitComponentRefAssignment(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CompoundConstExpression:
+                            continueStatus=visitCompoundConstExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CompoundExpression:
+                            continueStatus=visitCompoundExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ConditionalConstruct:
+                            continueStatus=visitConditionalConstruct(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ConfigSpec:
+                            continueStatus=visitConfigSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ConfigurationOps:
+                            continueStatus=visitConfigurationOps(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ConfigurationStatements:
+                            continueStatus=visitConfigurationStatements(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ConnectStatement:
+                            continueStatus=visitConnectStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ConstDef:
+                            continueStatus=visitConstDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ConstList:
+                            continueStatus=visitConstList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ConstantExpression:
+                            continueStatus=visitConstantExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ControlStatement:
+                            continueStatus=visitControlStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ControlStatementOrDef:
+                            continueStatus=visitControlStatementOrDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ControlStatementOrDefList:
+                            continueStatus=visitControlStatementOrDefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CreateOp:
+                            continueStatus=visitCreateOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Cstring:
+                            continueStatus=visitCstring(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Dash:
+                            continueStatus=visitDash(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DeactivateStatement:
+                            continueStatus=visitDeactivateStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DefIndentClose:
+                            continueStatus=visitDefIndentClose(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DefIndentOpen:
+                            continueStatus=visitDefIndentOpen(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DefKeyword:
+                            continueStatus=visitDefKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DefOrFieldRef:
+                            continueStatus=visitDefOrFieldRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DefOrFieldRefList:
+                            continueStatus=visitDefOrFieldRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DerivedDef:
+                            continueStatus=visitDerivedDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DerivedRegWithParList:
+                            continueStatus=visitDerivedRegWithParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Direction:
+                            continueStatus=visitDirection(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DisconnectStatement:
+                            continueStatus=visitDisconnectStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DisplayKeyword:
+                            continueStatus=visitDisplayKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DoWhileStatement:
+                            continueStatus=visitDoWhileStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DoneStatement:
+                            continueStatus=visitDoneStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Dot:
+                            continueStatus=visitDot(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DoubleColon:
+                            continueStatus=visitDoubleColon(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ElseClause:
+                            continueStatus=visitElseClause(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ElseIfClause:
+                            continueStatus=visitElseIfClause(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ElseIfClauses:
+                            continueStatus=visitElseIfClauses(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ElseStatement:
+                            continueStatus=visitElseStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EncodeKeyword:
+                            continueStatus=visitEncodeKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EndChar:
+                            continueStatus=visitEndChar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EnumDef:
+                            continueStatus=visitEnumDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EnumeratedValue:
+                            continueStatus=visitEnumeratedValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Enumeration:
+                            continueStatus=visitEnumeration(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EnumerationList:
+                            continueStatus=visitEnumerationList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Equal:
+                            continueStatus=visitEqual(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Error:
+                            continueStatus=visitError(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptionSpec:
+                            continueStatus=visitExceptionSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExceptionTypeList:
+                            continueStatus=visitExceptionTypeList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Expression:
+                            continueStatus=visitExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExtConstDef:
+                            continueStatus=visitExtConstDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExtFunctionDef:
+                            continueStatus=visitExtFunctionDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExtendedFieldReference:
+                            continueStatus=visitExtendedFieldReference(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExtensionKeyword:
+                            continueStatus=visitExtensionKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ExtraMatchingAttributes:
+                            continueStatus=visitExtraMatchingAttributes(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Factor:
+                            continueStatus=visitFactor(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Fail:
+                            continueStatus=visitFail(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.False:
+                            continueStatus=visitFalse(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FieldConstExpressionList:
+                            continueStatus=visitFieldConstExpressionList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FieldConstExpressionSpec:
+                            continueStatus=visitFieldConstExpressionSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FieldExpressionList:
+                            continueStatus=visitFieldExpressionList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FieldExpressionSpec:
+                            continueStatus=visitFieldExpressionSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FieldReference:
+                            continueStatus=visitFieldReference(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FieldSpec:
+                            continueStatus=visitFieldSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FieldSpecList:
+                            continueStatus=visitFieldSpecList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FieldValueOrAttrib:
+                            continueStatus=visitFieldValueOrAttrib(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Final:
+                            continueStatus=visitFinal(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FloatKeyword:
+                            continueStatus=visitFloatKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FloatValue:
+                            continueStatus=visitFloatValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ForStatement:
+                            continueStatus=visitForStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FormalPortPar:
+                            continueStatus=visitFormalPortPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FormalTemplatePar:
+                            continueStatus=visitFormalTemplatePar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FormalTimerPar:
+                            continueStatus=visitFormalTimerPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FormalTypePar:
+                            continueStatus=visitFormalTypePar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FormalValuePar:
+                            continueStatus=visitFormalValuePar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FromClause:
+                            continueStatus=visitFromClause(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionActualParAssignment:
+                            continueStatus=visitFunctionActualParAssignment(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FriendKeyword:
+                            continueStatus=visitFriendKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FriendModuleDef:
+                            continueStatus=visitFriendModuleDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionActualPar:
+                            continueStatus=visitFunctionActualPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionActualParList:
+                            continueStatus=visitFunctionActualParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionBody:
+                            continueStatus=visitFunctionBody(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionDef:
+                            continueStatus=visitFunctionDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionLocalDefOrInst:
+                            continueStatus=visitFunctionLocalDefOrInst(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionLocalDefOrInstList:
+                            continueStatus=visitFunctionLocalDefOrInstList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionStatementList:
+                            continueStatus=visitFunctionStatementList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionFormalPar:
+                            continueStatus=visitFunctionFormalPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionInstance:
+                            continueStatus=visitFunctionInstance(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionLocalDef:
+                            continueStatus=visitFunctionLocalDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionLocalInst:
+                            continueStatus=visitFunctionLocalInst(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionRef:
+                            continueStatus=visitFunctionRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FunctionStatement:
+                            continueStatus=visitFunctionStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GetCallStatement:
+                            continueStatus=visitGetCallStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GetLocalVerdict:
+                            continueStatus=visitGetLocalVerdict(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GetReplyStatement:
+                            continueStatus=visitGetReplyStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GlobalModuleId:
+                            continueStatus=visitGlobalModuleId(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GotoStatement:
+                            continueStatus=visitGotoStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Group:
+                            continueStatus=visitGroup(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GroupDef:
+                            continueStatus=visitGroupDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GuardOp:
+                            continueStatus=visitGuardOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GuardStatement:
+                            continueStatus=visitGuardStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.HexOrMatch:
+                            continueStatus=visitHexOrMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.HexStringKeyword:
+                            continueStatus=visitHexStringKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.HexStringMatch:
+                            continueStatus=visitHexStringMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.HexStringValue:
+                            continueStatus=visitHexStringValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.HaltStatement:
+                            continueStatus=visitHaltStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Identifier:
+                            continueStatus=visitIdentifier(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.IfPresentMatch:
+                            continueStatus=visitIfPresentMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportAllSpec:
+                            continueStatus=visitImportAllSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportConstSpec:
+                            continueStatus=visitImportConstSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportDef:
+                            continueStatus=visitImportDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportElement:
+                            continueStatus=visitImportElement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportFromSpec:
+                            continueStatus=visitImportFromSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportFunctionSpec:
+                            continueStatus=visitImportFunctionSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportGroupSpec:
+                            continueStatus=visitImportGroupSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportNamedAltSpec:
+                            continueStatus=visitImportNamedAltSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportSignatureSpec:
+                            continueStatus=visitImportSignatureSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportSpec:
+                            continueStatus=visitImportSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportTemplateSpec:
+                            continueStatus=visitImportTemplateSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportTestcaseSpec:
+                            continueStatus=visitImportTestcaseSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ImportTypeDefSpec:
+                            continueStatus=visitImportTypeDefSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.InLineTemplate:
+                            continueStatus=visitInLineTemplate(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.InOutParKeyword:
+                            continueStatus=visitInOutParKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.InParKeyword:
+                            continueStatus=visitInParKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Inconc:
+                            continueStatus=visitInconc(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Infinity:
+                            continueStatus=visitInfinity(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Initial:
+                            continueStatus=visitInitial(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.IntegerKeyword:
+                            continueStatus=visitIntegerKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.IntegerValue:
+                            continueStatus=visitIntegerValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.InterleavedAction:
+                            continueStatus=visitInterleavedAction(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.InterleavedConstruct:
+                            continueStatus=visitInterleavedConstruct(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.InterleavedGuard:
+                            continueStatus=visitInterleavedGuard(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.InterleavedGuardElement:
+                            continueStatus=visitInterleavedGuardElement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.InterleavedGuardList:
+                            continueStatus=visitInterleavedGuardList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.KilledKeyword:
+                            continueStatus=visitKilledKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LParen:
+                            continueStatus=visitLParen(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LabelStatement:
+                            continueStatus=visitLabelStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LanguageSpec:
+                            continueStatus=visitLanguageSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LengthMatch:
+                            continueStatus=visitLengthMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Lessorequal:
+                            continueStatus=visitLessorequal(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Lessthan:
+                            continueStatus=visitLessthan(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LogStatement:
+                            continueStatus=visitLogStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LoopConstruct:
+                            continueStatus=visitLoopConstruct(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LowerBound:
+                            continueStatus=visitLowerBound(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MTCOp:
+                            continueStatus=visitMTCOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MapStatement:
+                            continueStatus=visitMapStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MatchOp:
+                            continueStatus=visitMatchOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MatchingSymbol:
+                            continueStatus=visitMatchingSymbol(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MessageAttribs:
+                            continueStatus=visitMessageAttribs(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MessageList:
+                            continueStatus=visitMessageList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Minus:
+                            continueStatus=visitMinus(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MixedAttribs:
+                            continueStatus=visitMixedAttribs(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MixedList:
+                            continueStatus=visitMixedList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Mod:
+                            continueStatus=visitMod(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModifiesKeyword:
+                            continueStatus=visitModifiesKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModuleControlBody:
+                            continueStatus=visitModuleControlBody(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModuleControlPart:
+                            continueStatus=visitModuleControlPart(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModuleDefinition:
+                            continueStatus=visitModuleDefinition(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModuleDefinitionsList:
+                            continueStatus=visitModuleDefinitionsList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModuleDefinitionsPart:
+                            continueStatus=visitModuleDefinitionsPart(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModuleId:
+                            continueStatus=visitModuleId(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModulePar:
+                            continueStatus=visitModulePar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModuleParDef:
+                            continueStatus=visitModuleParDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ModuleParList:
+                            continueStatus=visitModuleParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Moreorequal:
+                            continueStatus=visitMoreorequal(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Morethan:
+                            continueStatus=visitMorethan(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MultiWithAttrib:
+                            continueStatus=visitMultiWithAttrib(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MultiplyOp:
+                            continueStatus=visitMultiplyOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MultitypedModuleParList:
+                            continueStatus=visitMultitypedModuleParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedAltActualPar:
+                            continueStatus=visitNamedAltActualPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedAltActualParList:
+                            continueStatus=visitNamedAltActualParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedAltDef:
+                            continueStatus=visitNamedAltDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedAltFormalPar:
+                            continueStatus=visitNamedAltFormalPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedAltFormalParList:
+                            continueStatus=visitNamedAltFormalParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedAltInstance:
+                            continueStatus=visitNamedAltInstance(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedAltList:
+                            continueStatus=visitNamedAltList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedAltRef:
+                            continueStatus=visitNamedAltRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedAltRefList:
+                            continueStatus=visitNamedAltRefList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedKeyword:
+                            continueStatus=visitNamedKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedValue:
+                            continueStatus=visitNamedValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NamedValueList:
+                            continueStatus=visitNamedValueList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NoBlockKeyword:
+                            continueStatus=visitNoBlockKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.None:
+                            continueStatus=visitNone(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Not4b:
+                            continueStatus=visitNot4b(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Not:
+                            continueStatus=visitNot(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NotUsedOrExpression:
+                            continueStatus=visitNotUsedOrExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NotUsedSymbol:
+                            continueStatus=visitNotUsedSymbol(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Notequals:
+                            continueStatus=visitNotequals(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NowaitKeyword:
+                            continueStatus=visitNowaitKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Null:
+                            continueStatus=visitNull(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Number:
+                            continueStatus=visitNumber(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OctOrMatch:
+                            continueStatus=visitOctOrMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OctetStringKeyword:
+                            continueStatus=visitOctetStringKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OctetStringMatch:
+                            continueStatus=visitOctetStringMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OctetStringValue:
+                            continueStatus=visitOctetStringValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OmitKeyword:
+                            continueStatus=visitOmitKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OpCall:
+                            continueStatus=visitOpCall(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OpValue:
+                            continueStatus=visitOpValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OptionalKeyword:
+                            continueStatus=visitOptionalKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Or4b:
+                            continueStatus=visitOr4b(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Or:
+                            continueStatus=visitOr(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OutParKeyword:
+                            continueStatus=visitOutParKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OverrideKeyword:
+                            continueStatus=visitOverrideKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ParRef:
+                            continueStatus=visitParRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ParaAssignmentList:
+                            continueStatus=visitParaAssignmentList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ParaSpec:
+                            continueStatus=visitParaSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Pass:
+                            continueStatus=visitPass(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PermutationMatch:
+                            continueStatus=visitPermutationMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Plane:
+                            continueStatus=visitPlane(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Plus:
+                            continueStatus=visitPlus(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Port:
+                            continueStatus=visitPort(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortCallBody:
+                            continueStatus=visitPortCallBody(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortCallOp:
+                            continueStatus=visitPortCallOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortCatchOp:
+                            continueStatus=visitPortCatchOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortCheckOp:
+                            continueStatus=visitPortCheckOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortClearOp:
+                            continueStatus=visitPortClearOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortDef:
+                            continueStatus=visitPortDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortDefAttribs:
+                            continueStatus=visitPortDefAttribs(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortDefBody:
+                            continueStatus=visitPortDefBody(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortElement:
+                            continueStatus=visitPortElement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortGetCallOp:
+                            continueStatus=visitPortGetCallOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortGetReplyOp:
+                            continueStatus=visitPortGetReplyOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortInstance:
+                            continueStatus=visitPortInstance(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortKeyword:
+                            continueStatus=visitPortKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortOrAll:
+                            continueStatus=visitPortOrAll(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortOrAny:
+                            continueStatus=visitPortOrAny(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortRaiseOp:
+                            continueStatus=visitPortRaiseOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortReceiveOp:
+                            continueStatus=visitPortReceiveOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortRedirect:
+                            continueStatus=visitPortRedirect(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortRedirectWithParam:
+                            continueStatus=visitPortRedirectWithParam(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortRef:
+                            continueStatus=visitPortRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortReplyOp:
+                            continueStatus=visitPortReplyOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortSendOp:
+                            continueStatus=visitPortSendOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortSpec:
+                            continueStatus=visitPortSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortStartOp:
+                            continueStatus=visitPortStartOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortStopOp:
+                            continueStatus=visitPortStopOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortTriggerOp:
+                            continueStatus=visitPortTriggerOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortType:
+                            continueStatus=visitPortType(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PredefinedType:
+                            continueStatus=visitPredefinedType(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PredefinedValue:
+                            continueStatus=visitPredefinedValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Primary:
+                            continueStatus=visitPrimary(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ProcOrType:
+                            continueStatus=visitProcOrType(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ProcOrTypeList:
+                            continueStatus=visitProcOrTypeList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ProcedureAttribs:
+                            continueStatus=visitProcedureAttribs(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ProcedureList:
+                            continueStatus=visitProcedureList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Product:
+                            continueStatus=visitProduct(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PortHaltOp:
+                            continueStatus=visitPortHaltOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PrivateKeyword:
+                            continueStatus=visitPrivateKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PublicKeyword:
+                            continueStatus=visitPublicKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Quadruple:
+                            continueStatus=visitQuadruple(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.QuestionMark:
+                            continueStatus=visitQuestionMark(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RParen:
+                            continueStatus=visitRParen(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RaiseStatement:
+                            continueStatus=visitRaiseStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Range:
+                            continueStatus=visitRange(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RangeDef:
+                            continueStatus=visitRangeDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RangeOp:
+                            continueStatus=visitRangeOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ReadTimerOp:
+                            continueStatus=visitReadTimerOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ReceiveParameter:
+                            continueStatus=visitReceiveParameter(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ReceiveStatement:
+                            continueStatus=visitReceiveStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RecordDef:
+                            continueStatus=visitRecordDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RecordOfDef:
+                            continueStatus=visitRecordOfDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RecordRef:
+                            continueStatus=visitRecordRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RecursiveKeyword:
+                            continueStatus=visitRecursiveKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ReferencedType:
+                            continueStatus=visitReferencedType(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ReferencedValue:
+                            continueStatus=visitReferencedValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RelOp:
+                            continueStatus=visitRelOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Rem:
+                            continueStatus=visitRem(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ReplyStatement:
+                            continueStatus=visitReplyStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ReturnStatement:
+                            continueStatus=visitReturnStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ReturnType:
+                            continueStatus=visitReturnType(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Row:
+                            continueStatus=visitRow(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RunningOp:
+                            continueStatus=visitRunningOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RunningTimerOp:
+                            continueStatus=visitRunningTimerOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RunsOnSpec:
+                            continueStatus=visitRunsOnSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SUTAction:
+                            continueStatus=visitSUTAction(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SUTStatements:
+                            continueStatus=visitSUTStatements(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SelfOp:
+                            continueStatus=visitSelfOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SemiColon:
+                            continueStatus=visitSemiColon(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SendParameter:
+                            continueStatus=visitSendParameter(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SendStatement:
+                            continueStatus=visitSendStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SenderSpec:
+                            continueStatus=visitSenderSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SetDef:
+                            continueStatus=visitSetDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SetLocalVerdict:
+                            continueStatus=visitSetLocalVerdict(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SetOfDef:
+                            continueStatus=visitSetOfDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ShiftOp:
+                            continueStatus=visitShiftOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Signature:
+                            continueStatus=visitSignature(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SignatureDef:
+                            continueStatus=visitSignatureDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SignatureFormalPar:
+                            continueStatus=visitSignatureFormalPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SignatureFormalParList:
+                            continueStatus=visitSignatureFormalParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SignatureList:
+                            continueStatus=visitSignatureList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SimpleExpression:
+                            continueStatus=visitSimpleExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SimpleExpressions:
+                            continueStatus=visitSimpleExpressions(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SingleConstDef:
+                            continueStatus=visitSingleConstDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SingleExpression:
+                            continueStatus=visitSingleExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SingleQuote:
+                            continueStatus=visitSingleQuote(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SingleTempVarInstance:
+                            continueStatus=visitSingleTempVarInstance(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SingleValueOrAttrib:
+                            continueStatus=visitSingleValueOrAttrib(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SingleVarInstance:
+                            continueStatus=visitSingleVarInstance(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SingleValueSpec:
+                            continueStatus=visitSingleValueSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SingleWithAttrib:
+                            continueStatus=visitSingleWithAttrib(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Slash:
+                            continueStatus=visitSlash(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SquareClose:
+                            continueStatus=visitSquareClose(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SquareOpen:
+                            continueStatus=visitSquareOpen(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Star:
+                            continueStatus=visitStar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StartStatement:
+                            continueStatus=visitStartStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StartTCStatement:
+                            continueStatus=visitStartTCStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StartTimerStatement:
+                            continueStatus=visitStartTimerStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StatementBlock:
+                            continueStatus=visitStatementBlock(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Step:
+                            continueStatus=visitStep(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StopStatement:
+                            continueStatus=visitStopStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StopTCStatement:
+                            continueStatus=visitStopTCStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StopTimerStatement:
+                            continueStatus=visitStopTimerStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StringAnyOrOmit:
+                            continueStatus=visitStringAnyOrOmit(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StringAnyValue:
+                            continueStatus=visitStringAnyValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StringLength:
+                            continueStatus=visitStringLength(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StringMatchOp:
+                            continueStatus=visitStringMatchOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StringOp:
+                            continueStatus=visitStringOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StructDefBody:
+                            continueStatus=visitStructDefBody(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StructDefFormalPar:
+                            continueStatus=visitStructDefFormalPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StructDefFormalParList:
+                            continueStatus=visitStructDefFormalParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StructFieldDef:
+                            continueStatus=visitStructFieldDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StructFieldRef:
+                            continueStatus=visitStructFieldRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StructOfDefBody:
+                            continueStatus=visitStructOfDefBody(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.StructuredTypeDef:
+                            continueStatus=visitStructuredTypeDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SubExpression:
+                            continueStatus=visitSubExpression(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SubTypeDef:
+                            continueStatus=visitSubTypeDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SubTypeSpec:
+                            continueStatus=visitSubTypeSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SubsetMatch:
+                            continueStatus=visitSubsetMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SupersetMatch:
+                            continueStatus=visitSupersetMatch(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SystemOp:
+                            continueStatus=visitSystemOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SystemSpec:
+                            continueStatus=visitSystemSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TTCN3File:
+                            continueStatus=visitTTCN3File(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TTCN3Module:
+                            continueStatus=visitTTCN3Module(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TTCN3ModuleId:
+                            continueStatus=visitTTCN3ModuleId(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateActualPar:
+                            continueStatus=visitTemplateActualPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateActualParList:
+                            continueStatus=visitTemplateActualParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateBody:
+                            continueStatus=visitTemplateBody(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateDef:
+                            continueStatus=visitTemplateDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateFormalPar:
+                            continueStatus=visitTemplateFormalPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateFormalParList:
+                            continueStatus=visitTemplateFormalParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateInstanceAssignment:
+                            continueStatus=visitTemplateInstanceAssignment(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateInstance:
+                            continueStatus=visitTemplateInstance(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateKeyword:
+                            continueStatus=visitTemplateKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateOps:
+                            continueStatus=visitTemplateOps(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateRef:
+                            continueStatus=visitTemplateRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TemplateRefWithParList:
+                            continueStatus=visitTemplateRefWithParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Term:
+                            continueStatus=visitTerm(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TestcaseActualParAssignment:
+                            continueStatus=visitTestcaseActualParAssignment(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TestcaseActualPar:
+                            continueStatus=visitTestcaseActualPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TestcaseActualParList:
+                            continueStatus=visitTestcaseActualParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TestcaseDef:
+                            continueStatus=visitTestcaseDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TestcaseInstance:
+                            continueStatus=visitTestcaseInstance(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TestcaseRef:
+                            continueStatus=visitTestcaseRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TimeoutKeyword:
+                            continueStatus=visitTimeoutKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TimeoutStatement:
+                            continueStatus=visitTimeoutStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TimerInstance:
+                            continueStatus=visitTimerInstance(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TimerKeyword:
+                            continueStatus=visitTimerKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TimerOps:
+                            continueStatus=visitTimerOps(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TimerRef:
+                            continueStatus=visitTimerRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TimerRefOrAll:
+                            continueStatus=visitTimerRefOrAll(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TimerRefOrAny:
+                            continueStatus=visitTimerRefOrAny(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TimerStatements:
+                            continueStatus=visitTimerStatements(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TimerValue:
+                            continueStatus=visitTimerValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ToClause:
+                            continueStatus=visitToClause(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TriggerStatement:
+                            continueStatus=visitTriggerStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.True:
+                            continueStatus=visitTrue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Type:
+                            continueStatus=visitType(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TypeActualPar:
+                            continueStatus=visitTypeActualPar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TypeActualParList:
+                            continueStatus=visitTypeActualParList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TypeDef:
+                            continueStatus=visitTypeDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TypeDefIdentifier:
+                            continueStatus=visitTypeDefIdentifier(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TypeList:
+                            continueStatus=visitTypeList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TypeReference:
+                            continueStatus=visitTypeReference(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UnaryOp:
+                            continueStatus=visitUnaryOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Underscore:
+                            continueStatus=visitUnderscore(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UnionDef:
+                            continueStatus=visitUnionDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UnionDefBody:
+                            continueStatus=visitUnionDefBody(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UnionFieldDef:
+                            continueStatus=visitUnionFieldDef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UniversalChar:
+                            continueStatus=visitUniversalChar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UniversalCharString:
+                            continueStatus=visitUniversalCharString(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UniversalKeyword:
+                            continueStatus=visitUniversalKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UnmapStatement:
+                            continueStatus=visitUnmapStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UpperBound:
+                            continueStatus=visitUpperBound(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Value:
+                            continueStatus=visitValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ValueList:
+                            continueStatus=visitValueList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ValueMatchSpec:
+                            continueStatus=visitValueMatchSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ValueOrAttribList:
+                            continueStatus=visitValueOrAttribList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ValueOrRange:
+                            continueStatus=visitValueOrRange(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ValueParOrTypePar:
+                            continueStatus=visitValueParOrTypePar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ValueReference:
+                            continueStatus=visitValueReference(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ValueSpec:
+                            continueStatus=visitValueSpec(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ValueofOp:
+                            continueStatus=visitValueofOp(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VarInitialValue:
+                            continueStatus=visitVarInitialValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VarInstance:
+                            continueStatus=visitVarInstance(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VarList:
+                            continueStatus=visitVarList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VariableAssignment:
+                            continueStatus=visitVariableAssignment(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VariableEntry:
+                            continueStatus=visitVariableEntry(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VariableList:
+                            continueStatus=visitVariableList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VariableRef:
+                            continueStatus=visitVariableRef(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VerdictOps:
+                            continueStatus=visitVerdictOps(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VerdictStatements:
+                            continueStatus=visitVerdictStatements(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VerdictTypeKeyword:
+                            continueStatus=visitVerdictTypeKeyword(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VerdictTypeValue:
+                            continueStatus=visitVerdictTypeValue(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Visibility:
+                            continueStatus=visitVisibility(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.WhileStatement:
+                            continueStatus=visitWhileStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.WithAttribList:
+                            continueStatus=visitWithAttribList(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.WithStatement:
+                            continueStatus=visitWithStatement(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Xor4b:
+                            continueStatus=visitXor4b(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Xor:
+                            continueStatus=visitXor(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BSTRING:
+                            continueStatus=visitBSTRING(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BSTRINGMATCH:
+                            continueStatus=visitBSTRINGMATCH(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DOT:
+                            continueStatus=visitDOT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FLOATVALUE:
+                            continueStatus=visitFLOATVALUE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.HSTRING:
+                            continueStatus=visitHSTRING(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.HSTRINGMATCH:
+                            continueStatus=visitHSTRINGMATCH(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OSTRING:
+                            continueStatus=visitOSTRING(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OSTRINGMATCH:
+                            continueStatus=visitOSTRINGMATCH(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RANGEOP:
+                            continueStatus=visitRANGEOP(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ACTION:
+                            continueStatus=visitACTION(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ACTIVATE:
+                            continueStatus=visitACTIVATE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ADDRESS:
+                            continueStatus=visitADDRESS(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ALIVE:
+                            continueStatus=visitALIVE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ALL:
+                            continueStatus=visitALL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ALT:
+                            continueStatus=visitALT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ALTSTEP:
+                            continueStatus=visitALTSTEP(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AND:
+                            continueStatus=visitAND(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.AND4B:
+                            continueStatus=visitAND4B(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ANY:
+                            continueStatus=visitANY(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ANYTYPE:
+                            continueStatus=visitANYTYPE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BITSTRING:
+                            continueStatus=visitBITSTRING(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BOOLEAN:
+                            continueStatus=visitBOOLEAN(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BREAK:
+                            continueStatus=visitBREAK(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CALL:
+                            continueStatus=visitCALL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CASE:
+                            continueStatus=visitCASE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CATCH:
+                            continueStatus=visitCATCH(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CHAR:
+                            continueStatus=visitCHAR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CHARSTRING:
+                            continueStatus=visitCHARSTRING(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CHECK:
+                            continueStatus=visitCHECK(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CLEAR:
+                            continueStatus=visitCLEAR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.COMPLEMENT:
+                            continueStatus=visitCOMPLEMENT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.COMPONENT:
+                            continueStatus=visitCOMPONENT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CONNECT:
+                            continueStatus=visitCONNECT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CONST:
+                            continueStatus=visitCONST(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CONTINUE:
+                            continueStatus=visitCONTINUE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CONTROL:
+                            continueStatus=visitCONTROL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CREATE:
+                            continueStatus=visitCREATE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DEACTIVATE:
+                            continueStatus=visitDEACTIVATE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DEFAULT:
+                            continueStatus=visitDEFAULT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DISCONNECT:
+                            continueStatus=visitDISCONNECT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DISPLAY:
+                            continueStatus=visitDISPLAY(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DO:
+                            continueStatus=visitDO(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DONE:
+                            continueStatus=visitDONE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ELSE:
+                            continueStatus=visitELSE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ENCODE:
+                            continueStatus=visitENCODE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ENUMERATED:
+                            continueStatus=visitENUMERATED(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ERROR:
+                            continueStatus=visitERROR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EXCEPT:
+                            continueStatus=visitEXCEPT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EXCEPTION:
+                            continueStatus=visitEXCEPTION(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EXECUTE:
+                            continueStatus=visitEXECUTE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EXTENDS:
+                            continueStatus=visitEXTENDS(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EXTENSION:
+                            continueStatus=visitEXTENSION(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EXTERNAL:
+                            continueStatus=visitEXTERNAL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FAIL:
+                            continueStatus=visitFAIL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FALSE:
+                            continueStatus=visitFALSE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FLOAT:
+                            continueStatus=visitFLOAT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FOR:
+                            continueStatus=visitFOR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FROM:
+                            continueStatus=visitFROM(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FUNCTION:
+                            continueStatus=visitFUNCTION(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.FRIEND:
+                            continueStatus=visitFRIEND(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GETCALL:
+                            continueStatus=visitGETCALL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GETREPLY:
+                            continueStatus=visitGETREPLY(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GETVERDICT:
+                            continueStatus=visitGETVERDICT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GOTO:
+                            continueStatus=visitGOTO(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GROUP:
+                            continueStatus=visitGROUP(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.HALT:
+                            continueStatus=visitHALT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.HEXSTRING:
+                            continueStatus=visitHEXSTRING(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.IF:
+                            continueStatus=visitIF(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.IFPRESENT:
+                            continueStatus=visitIFPRESENT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.IMPORT:
+                            continueStatus=visitIMPORT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.IN:
+                            continueStatus=visitIN(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.INCONC:
+                            continueStatus=visitINCONC(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.INFINITY:
+                            continueStatus=visitINFINITY(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.INOUT:
+                            continueStatus=visitINOUT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.INTEGER:
+                            continueStatus=visitINTEGER(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.INTERLEAVE:
+                            continueStatus=visitINTERLEAVE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.KILL:
+                            continueStatus=visitKILL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.KILLED:
+                            continueStatus=visitKILLED(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LABEL:
+                            continueStatus=visitLABEL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LANGUAGE:
+                            continueStatus=visitLANGUAGE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LENGTH:
+                            continueStatus=visitLENGTH(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LOG:
+                            continueStatus=visitLOG(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MAP:
+                            continueStatus=visitMAP(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MATCH:
+                            continueStatus=visitMATCH(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MESSAGE:
+                            continueStatus=visitMESSAGE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MIXED:
+                            continueStatus=visitMIXED(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MOD:
+                            continueStatus=visitMOD(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MODIFIES:
+                            continueStatus=visitMODIFIES(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MODULE:
+                            continueStatus=visitMODULE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MODULEPAR:
+                            continueStatus=visitMODULEPAR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MTC:
+                            continueStatus=visitMTC(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NOBLOCK:
+                            continueStatus=visitNOBLOCK(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NONE:
+                            continueStatus=visitNONE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NOT:
+                            continueStatus=visitNOT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NOT4B:
+                            continueStatus=visitNOT4B(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NOWAIT:
+                            continueStatus=visitNOWAIT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NULL:
+                            continueStatus=visitNULL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OBJID:
+                            continueStatus=visitOBJID(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OCTETSTRING:
+                            continueStatus=visitOCTETSTRING(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OF:
+                            continueStatus=visitOF(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OMIT:
+                            continueStatus=visitOMIT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ON:
+                            continueStatus=visitON(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OPTIONAL:
+                            continueStatus=visitOPTIONAL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OR:
+                            continueStatus=visitOR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OR4B:
+                            continueStatus=visitOR4B(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OUT:
+                            continueStatus=visitOUT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OVERRIDE:
+                            continueStatus=visitOVERRIDE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PARAM:
+                            continueStatus=visitPARAM(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PASS:
+                            continueStatus=visitPASS(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PATTERN:
+                            continueStatus=visitPATTERN(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PERMUTATION:
+                            continueStatus=visitPERMUTATION(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PORT:
+                            continueStatus=visitPORT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PRESENT:
+                            continueStatus=visitPRESENT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PRIVATE:
+                            continueStatus=visitPRIVATE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PROCEDURE:
+                            continueStatus=visitPROCEDURE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PUBLIC:
+                            continueStatus=visitPUBLIC(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RAISE:
+                            continueStatus=visitRAISE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.READ:
+                            continueStatus=visitREAD(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RECEIVE:
+                            continueStatus=visitRECEIVE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RECORD:
+                            continueStatus=visitRECORD(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RECURSIVE:
+                            continueStatus=visitRECURSIVE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.REM:
+                            continueStatus=visitREM(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.REPEAT:
+                            continueStatus=visitREPEAT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.REPLY:
+                            continueStatus=visitREPLY(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RETURN:
+                            continueStatus=visitRETURN(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RUNNING:
+                            continueStatus=visitRUNNING(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RUNS:
+                            continueStatus=visitRUNS(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SELECT:
+                            continueStatus=visitSELECT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SELF:
+                            continueStatus=visitSELF(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SEND:
+                            continueStatus=visitSEND(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SENDER:
+                            continueStatus=visitSENDER(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SET:
+                            continueStatus=visitSET(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SETVERDICT:
+                            continueStatus=visitSETVERDICT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SIGNATURE:
+                            continueStatus=visitSIGNATURE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.START:
+                            continueStatus=visitSTART(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.STOP:
+                            continueStatus=visitSTOP(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SUBSET:
+                            continueStatus=visitSUBSET(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SUPERSET:
+                            continueStatus=visitSUPERSET(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SYSTEM:
+                            continueStatus=visitSYSTEM(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TEMPLATE:
+                            continueStatus=visitTEMPLATE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TESTCASE:
+                            continueStatus=visitTESTCASE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TIMEOUT:
+                            continueStatus=visitTIMEOUT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TIMER:
+                            continueStatus=visitTIMER(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TO:
+                            continueStatus=visitTO(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TRIGGER:
+                            continueStatus=visitTRIGGER(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TRUE:
+                            continueStatus=visitTRUE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.TYPE:
+                            continueStatus=visitTYPE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UNION:
+                            continueStatus=visitUNION(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UNIVERSAL:
+                            continueStatus=visitUNIVERSAL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UNMAP:
+                            continueStatus=visitUNMAP(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VALUE:
+                            continueStatus=visitVALUE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VAR:
+                            continueStatus=visitVAR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VARIANT:
+                            continueStatus=visitVARIANT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.VERDICTTYPE:
+                            continueStatus=visitVERDICTTYPE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.WHILE:
+                            continueStatus=visitWHILE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.WITH:
+                            continueStatus=visitWITH(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.XOR:
+                            continueStatus=visitXOR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.XOR4B:
+                            continueStatus=visitXOR4B(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.WS:
+                            continueStatus=visitWS(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SL_COMMENT:
+                            continueStatus=visitSL_COMMENT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ML_COMMENT:
+                            continueStatus=visitML_COMMENT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.IDENTIFIER:
+                            continueStatus=visitIDENTIFIER(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ASSIGNMENTCHAR:
+                            continueStatus=visitASSIGNMENTCHAR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PORTREDIRECTSYMBOL:
+                            continueStatus=visitPORTREDIRECTSYMBOL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BEGINCHAR:
+                            continueStatus=visitBEGINCHAR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.CSTRING:
+                            continueStatus=visitCSTRING(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.STRING:
+                            continueStatus=visitSTRING(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NUMBER:
+                            continueStatus=visitNUMBER(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EXPONENT:
+                            continueStatus=visitEXPONENT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SEMICOLON:
+                            continueStatus=visitSEMICOLON(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.COMMA:
+                            continueStatus=visitCOMMA(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DOUBLECOLON:
+                            continueStatus=visitDOUBLECOLON(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.COLON:
+                            continueStatus=visitCOLON(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UNDERSCORE:
+                            continueStatus=visitUNDERSCORE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ENDCHAR:
+                            continueStatus=visitENDCHAR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SQUAREOPEN:
+                            continueStatus=visitSQUAREOPEN(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SQUARECLOSE:
+                            continueStatus=visitSQUARECLOSE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LPAREN:
+                            continueStatus=visitLPAREN(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.RPAREN:
+                            continueStatus=visitRPAREN(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LESSTHAN:
+                            continueStatus=visitLESSTHAN(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MORETHAN:
+                            continueStatus=visitMORETHAN(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.NOTEQUALS:
+                            continueStatus=visitNOTEQUALS(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MOREOREQUAL:
+                            continueStatus=visitMOREOREQUAL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LESSOREQUAL:
+                            continueStatus=visitLESSOREQUAL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.EQUAL:
+                            continueStatus=visitEQUAL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PLUS:
+                            continueStatus=visitPLUS(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.MINUS:
+                            continueStatus=visitMINUS(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.STAR:
+                            continueStatus=visitSTAR(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SLASH:
+                            continueStatus=visitSLASH(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SINGLEQUOTE:
+                            continueStatus=visitSINGLEQUOTE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.DOUBLEQUOTE:
+                            continueStatus=visitDOUBLEQUOTE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.QUESTIONMARK:
+                            continueStatus=visitQUESTIONMARK(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SHIFTLEFT:
+                            continueStatus=visitSHIFTLEFT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.SHIFTRIGHT:
+                            continueStatus=visitSHIFTRIGHT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ROTATELEFT:
+                            continueStatus=visitROTATELEFT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.ROTATERIGHT:
+                            continueStatus=visitROTATERIGHT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.STRINGANYVALUE:
+                            continueStatus=visitSTRINGANYVALUE(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.STRINGANYOROMIT:
+                            continueStatus=visitSTRINGANYOROMIT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.QUOTESYMBOL:
+                            continueStatus=visitQUOTESYMBOL(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.STRINGOP:
+                            continueStatus=visitSTRINGOP(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Zero:
+                            continueStatus=visitZero(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Nonzeronum:
+                            continueStatus=visitNonzeronum(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Nonzeronumber:
+                            continueStatus=visitNonzeronumber(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Decimalnumber:
+                            continueStatus=visitDecimalnumber(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Num:
+                            continueStatus=visitNum(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.BIN:
+                            continueStatus=visitBIN(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.HEX:
+                            continueStatus=visitHEX(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OCT:
+                            continueStatus=visitOCT(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Char:
+                            continueStatus=visitChar(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.GeneralTextCharacter:
+                            continueStatus=visitGeneralTextCharacter(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Alphanumeric:
+                            continueStatus=visitAlphanumeric(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Letter:
+                            continueStatus=visitLetter(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.UppercaseLetter:
+                            continueStatus=visitUppercaseLetter(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.LowercaseLetter:
+                            continueStatus=visitLowercaseLetter(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Special:
+                            continueStatus=visitSpecial(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OtherSpecial:
+                            continueStatus=visitOtherSpecial(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.OtherCharacter:
+                            continueStatus=visitOtherCharacter(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.Space:
+                            continueStatus=visitSpace(node);
+                            return continueStatus;
+            case TTCN3ParserTokenTypes.PreProcessorMacro:
+                            continueStatus=visitPreProcessorMacro(node);
+                            return continueStatus;
+        }
+        return new ContinueStatus();
+    }
+
+    public abstract void init();
+    public abstract void finish();
+    
+    public void acceptDFS(LocationAST node) throws TTCN3BehaviorException {
+        init();
+        searchASTDepthFirst(node);
+        finish();
+    }
+
+    public void acceptBFS(LocationAST node) throws TTCN3BehaviorException {
+        init();
+        searchASTBreadthFirst(node);
+        finish();
+    }
+
+    protected ContinueStatus searchASTDepthFirst(LocationAST node) throws TTCN3BehaviorException {
+        if (node == null)
+            return ContinueStatus.getInstance(true, true);
+
+        LocationAST next = node;
+        while (next != null) {
+            ContinueStatus continueStatus = visit(next);
+            if (!continueStatus.continueSearch)
+                return ContinueStatus.getInstance(false, false);
+            if (continueStatus.goDeeper)
+                searchASTDepthFirst(next.getFirstChild());
+            next = next.getNextSibling();
+        }
+        return ContinueStatus.getInstance(true, true);
+    }
+
+    protected ContinueStatus searchASTBreadthFirst(LocationAST node) throws TTCN3BehaviorException {
+        if (node == null)
+            return ContinueStatus.getInstance(true, true);
+        
+        Queue<LocationAST> open = new LinkedList<LocationAST>();
+        open.add(node);
+        searchASTBreadthFirst(open);
+        return ContinueStatus.getInstance(true, true);
+    }
+
+    private ContinueStatus searchASTBreadthFirst(Queue<LocationAST> nodes) throws TTCN3BehaviorException {
+        Queue<LocationAST> open = new LinkedList<LocationAST>();
+        Iterator<LocationAST> it = nodes.iterator();
+        while (it.hasNext()) {
+            LocationAST item = it.next();
+            while (item != null) {
+                ContinueStatus continueStatus = visit(item);
+                if (!continueStatus.continueSearch)
+                    return ContinueStatus.getInstance(false, false);
+                if ( (item.getFirstChild() != null) && (continueStatus.goDeeper) )
+                    open.add(item.getFirstChild());
+                item = item.getNextSibling();
+            }
+        }
+        if (open.size() > 0)
+            searchASTBreadthFirst(open);
+        return ContinueStatus.getInstance(true, true);
+    }
+
+    static class ContinueStatus {
+        public boolean continueSearch = true;
+        public boolean goDeeper = true;
+        private static ContinueStatus truetrue = new ContinueStatus(true, true);
+        private static ContinueStatus truefalse = new ContinueStatus(true, false);
+        private static ContinueStatus falsetrue = new ContinueStatus(false, true);
+        private static ContinueStatus falsefalse = new ContinueStatus(false, false);
+
+        private ContinueStatus() {
+            this.continueSearch = true;
+            this.goDeeper = true;
+        }
+
+        private ContinueStatus(boolean continueSearch, boolean goDeeper) {
+            this.continueSearch = continueSearch;
+            this.goDeeper = goDeeper;
+        }
+
+        public static ContinueStatus getInstance(boolean continueSearch, boolean goDeeper) {
+            if (continueSearch && goDeeper) {
+                return truetrue;
+            } else if (!continueSearch && goDeeper) {
+                return falsetrue;
+            } else if (continueSearch && !goDeeper) {
+                return truefalse;
+            } else {
+                return falsefalse;
+            }
+        }
+    }
+    
+
+}
Index: trunk/t3d/src/org/etsi/t3d/visitor/DependencyVisitor.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/visitor/DependencyVisitor.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/visitor/DependencyVisitor.java	(revision 7)
@@ -0,0 +1,182 @@
+package org.etsi.t3d.visitor;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+
+import org.etsi.t3d.DependencyPrinter;
+import org.etsi.t3d.exceptions.TTCN3BehaviorException;
+
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.ASTUtil;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.LocationAST;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3ParserTokenTypes;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.symboltable.EnumSymbol;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.symboltable.Symbol;
+
+public class DependencyVisitor extends AbstractVisitor {
+	
+	private DependencyPrinter dependencyPrinter;
+
+	public DependencyVisitor(DependencyPrinter dependencyPrinter) {
+		this.dependencyPrinter = dependencyPrinter;
+	}
+	@Override
+	public void finish() {
+	}
+
+	@Override
+	public void init() {
+	}
+	
+	
+	/**
+	 * Extracts identifiers related to a module definition identifier within the 
+	 * corresponding module definition subtree
+	 * TODO: filter out predefined functions
+	 * @param moduleDefinitionIdentifierNode - A module definition identifier node
+	 * @return - A list of referenced identifier nodes, excluding the identifier
+	 *  nodes of the module definition itself; if node is not of type Identifier
+	 *  an empty list is returned instead
+	 */
+	//TODO: this may need to be moved for reuse
+	private static LinkedList<LocationAST> getRelatedIdentifierNodes(
+			LocationAST identifierNode) {
+		LinkedList<LocationAST> identifierNodes = new LinkedList<LocationAST>();
+		if (identifierNode.getType() != TTCN3ParserTokenTypes.Identifier) {
+			return identifierNodes;
+		}
+		LocationAST moduleDefinitionNode = LocationAST.resolveParentsUntilType(identifierNode,
+				TTCN3ParserTokenTypes.ModuleDefinition);
+
+		LocationAST typeNode = LocationAST.getModuleDefinitionTypeNode(moduleDefinitionNode);
+		if (typeNode.getType() == TTCN3ParserTokenTypes.ModuleParDef
+				&& typeNode.getFirstChild().getType() == TTCN3ParserTokenTypes.MultitypedModuleParList) {
+			LocationAST sibling = identifierNode.getNextSibling();
+			if (sibling != null
+					&& sibling.getType() != TTCN3ParserTokenTypes.Identifier) {
+				identifierNodes.addAll(ASTUtil.findTypeNodes(sibling,
+						TTCN3ParserTokenTypes.Identifier));
+
+			}
+			LocationAST moduleParNode = LocationAST.resolveParentsUntilType(identifierNode,
+					TTCN3ParserTokenTypes.ModulePar);
+			LocationAST moduleParTypeNode = moduleParNode.getFirstChild();
+			identifierNodes.addAll(ASTUtil.findTypeNodes(moduleParTypeNode,
+					TTCN3ParserTokenTypes.Identifier));
+
+		} else {
+			identifierNodes = ASTUtil.findTypeNodes(moduleDefinitionNode,
+					TTCN3ParserTokenTypes.Identifier);
+			ArrayList<LocationAST> moduleDefinitionIdentifierNodes = LocationAST.getModuleDefinitionIdentifiersList(moduleDefinitionNode);
+			identifierNodes.removeAll(moduleDefinitionIdentifierNodes);
+		}
+		// TODO: exclude predefined functions
+		return identifierNodes;
+	}	
+	
+	
+	/**
+	 * Extracts referenced identifiers from within a module definition subtree
+	 * TODO: filter out predefined functions
+	 * @param moduleDefinitionNode - A module definition node
+	 * @return - A list of referenced identifier nodes, excluding the identifier nodes of the module definition itself; if node is not of type ModuleDefintion, an empty list is returned instead
+	 */
+	//TODO: This may have to be deprecated
+	private static LinkedList<LocationAST> getReferencedIdentifierNodes(LocationAST moduleDefinitionNode){
+		if (moduleDefinitionNode.getType()!=TTCN3ParserTokenTypes.ModuleDefinition) {
+			return new LinkedList<LocationAST>();
+		}
+		LinkedList<LocationAST> identifierNodes = ASTUtil.findTypeNodes(moduleDefinitionNode, TTCN3ParserTokenTypes.Identifier);
+		ArrayList<LocationAST> moduleDefinitionIdentifierNodes = LocationAST.getModuleDefinitionIdentifiersList(moduleDefinitionNode);
+		identifierNodes.removeAll(moduleDefinitionIdentifierNodes);
+		//TODO: exclude predefined functions
+		return identifierNodes;
+	}
+	
+	
+	/**
+	 * Transforms a list of <LocationAST> identifier nodes into a list of <String> reference IDs
+	 * @param identifierNodes - the list of identifier nodes
+	 * @return - A list of reference IDs 
+	 */
+	private LinkedList<String> getReferenceIds(LinkedList<LocationAST> identifierNodes){
+		LinkedList<String> referencedIds = new LinkedList<String>();
+		
+		for (LocationAST identifierNode : identifierNodes) {
+			LocationAST declarationNode = VisitorCommonFunctions.getDeclarationNodeFromIdentifier(identifierNode.getFirstChild());
+			if (declarationNode != null) {
+				String id = VisitorCommonFunctions.getIdFromIdentifier(declarationNode);
+				// TODO: move predefined filtering up
+				if (!id.equals("#") && !id.startsWith("trexPredefined")) {
+					Symbol symbol = identifierNode.getFirstChild().getSymbol();
+					if (symbol instanceof EnumSymbol) {
+						//TODO: need to add handling in documentation and imports generators too probably
+						declarationNode = symbol.getSurroundingScope().getScopeSymbol().getDeclarationNode();
+						id = VisitorCommonFunctions.getIdFromIdentifier(declarationNode);
+					}
+					if (VisitorCommonFunctions.isValidCrossReference(declarationNode)) {
+						if (!referencedIds.contains(id)) {
+							referencedIds.add(id);
+						}
+					}
+				} 
+			} else {
+				referencedIds.add("unresolvedReference---"
+						+ VisitorCommonFunctions.getName(identifierNode.getFirstChild()));
+			}
+		}
+		return referencedIds;
+	}	
+	
+	
+	private String getDependecies(LocationAST identifierNode) {
+		//TODO: this should be a part of the printer
+		LinkedList<String> referenceIds = getReferenceIds(getRelatedIdentifierNodes(identifierNode));
+		//sanitize list for slipped-through enumerated values
+		referenceIds.remove(VisitorCommonFunctions.getIdFromIdentifier(identifierNode));
+		String refs = "\n\t\t<reflist>";
+		for (String id : referenceIds)
+			refs += "\n\t\t\t<ref id=\"" + id + "\"/>";
+		refs += "\n\t\t</reflist>";
+		return refs;
+	}
+	
+	private String getElementList(LocationAST node){
+		//TODO: this should be a part of the printer
+		String elementList = "\n\t\t<elementlist>";
+		LinkedList <LocationAST> moduleDefinitionsList = ASTUtil.findTypeNodes(LocationAST.resolveParentsUntilType(node, TTCN3ParserTokenTypes.ModuleDefinition).getFirstChild(), TTCN3ParserTokenTypes.ModuleDefinition);
+		for(LocationAST moduleDefinitionNode : moduleDefinitionsList){
+			ArrayList<LocationAST> identifiersList = LocationAST.getModuleDefinitionIdentifiersList(moduleDefinitionNode);
+			for(LocationAST identifierNode : identifiersList)
+				elementList += "\n\t\t\t<ref id=\"" + VisitorCommonFunctions.getIdFromIdentifier(identifierNode) + "\"/>";
+		}		
+		return elementList + "\n\t\t</elementlist>";
+	}
+
+	public ContinueStatus visitModuleDefinition(LocationAST node) throws TTCN3BehaviorException {
+		ArrayList<LocationAST> identifiersList = LocationAST.getModuleDefinitionIdentifiersList(node);
+		LocationAST typeNode = LocationAST.getModuleDefinitionTypeNode(node);
+		
+		for (LocationAST identifierNode : identifiersList) {
+			if (typeNode.getType()==TTCN3ParserTokenTypes.GroupDef) {
+				dependencyPrinter.newGroup(VisitorCommonFunctions.getName(identifierNode),
+						VisitorCommonFunctions.getIdFromIdentifier(identifierNode.getFirstChild()),
+						typeNode.getType(),
+						identifierNode.getLine(),
+						VisitorCommonFunctions.getModuleName(identifierNode),
+						getElementList(identifierNode));
+			}else {
+				dependencyPrinter.newElement(VisitorCommonFunctions.getName(identifierNode),
+						VisitorCommonFunctions.getIdFromIdentifier(identifierNode.getFirstChild()),
+						typeNode.getType(),
+						identifierNode.getLine(),
+						VisitorCommonFunctions.getModuleName(identifierNode),
+						getDependecies(identifierNode));
+			}
+		}
+
+		return ContinueStatus.getInstance(true,true);
+	}
+
+
+	
+}
Index: trunk/t3d/src/org/etsi/t3d/visitor/ImportVisitor.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/visitor/ImportVisitor.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/visitor/ImportVisitor.java	(revision 7)
@@ -0,0 +1,43 @@
+package org.etsi.t3d.visitor;
+
+import java.util.LinkedList;
+
+import org.etsi.t3d.ImportPrinter;
+import org.etsi.t3d.T3D;
+import org.etsi.t3d.exceptions.TTCN3BehaviorException;
+
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.LocationAST;
+
+public class ImportVisitor extends AbstractVisitor {
+
+	private ImportPrinter importPrinter;
+	private String filename;
+
+	public ImportVisitor(ImportPrinter importPrinter) {
+		this.importPrinter = importPrinter;
+	}
+	@Override
+	public void finish() {
+	}
+
+	@Override
+	public void init() {
+		importPrinter.getLoggingInterface().setLogSourceName(this.getFilename());
+		importPrinter.setCurrentTTCN3File(this.getFilename());
+	}
+	
+	public ContinueStatus visitTTCN3Module(LocationAST node) throws TTCN3BehaviorException {
+		importPrinter.newModule(VisitorCommonFunctions.getName(node));
+		importPrinter.printImportView(node);
+		if(T3D.activeProfile.isCheckCyclicImports())
+			importPrinter.checkForCyclicImports(node, new LinkedList<String>());
+		return ContinueStatus.getInstance(true,true);
+	}
+	public void setFilename(String filename) {
+		this.filename = filename;
+	}
+	public String getFilename() {
+		return filename;
+	}
+	
+}
Index: trunk/t3d/src/org/etsi/t3d/visitor/T3DVisitor.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/visitor/T3DVisitor.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/visitor/T3DVisitor.java	(revision 7)
@@ -0,0 +1,394 @@
+package org.etsi.t3d.visitor;
+
+import java.util.ArrayList;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.etsi.t3d.T3D;
+import org.etsi.t3d.XMLPrinter;
+import org.etsi.t3d.exceptions.TTCN3BehaviorException;
+
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.ASTUtil;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.LocationAST;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3ParserTokenTypes;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TokenWithIndex;
+
+import elements.*;
+
+public class T3DVisitor extends AbstractVisitor {
+
+	private XMLPrinter xmlPrinter;
+	private String filename;
+
+	public T3DVisitor(XMLPrinter xmlPrinter) {
+		this.xmlPrinter = xmlPrinter;
+	}
+
+	@Override
+	public void finish() {
+	}
+
+	@Override
+	public void init() {
+		xmlPrinter.getLoggingInterface().setLogSourceName(this.getFilename());
+		xmlPrinter.setCurrentTTCN3File(this.getFilename());
+	}
+
+	// creates TTCN3Element instance from first child of Moduledefinition-node
+	// and passes it to the XMLPrinter
+	// TODO: Move content to element and pass on the module definition node
+	// TODO: move calls from defNodes to moduleDefs
+	// TODO: watchout for module definitions that shall be disregarded or
+	// handled differently
+	private void visitElementDefinition(LocationAST node) {
+		if (node.getParent().getType() != TTCN3ParserTokenTypes.ModuleDefinition)
+			return;
+		LinkedList<LocationAST> parameterList = ASTUtil.findTypeNodes(node,
+				TTCN3ParserTokenTypes.FormalValuePar);
+		parameterList.addAll(ASTUtil.findTypeNodes(node,
+				TTCN3ParserTokenTypes.FormalPortPar));
+		parameterList.addAll(ASTUtil.findTypeNodes(node,
+				TTCN3ParserTokenTypes.FormalTimerPar));
+		parameterList.addAll(ASTUtil.findTypeNodes(node,
+				TTCN3ParserTokenTypes.FormalTemplatePar));
+
+		LinkedList<String> parNames = new LinkedList<String>();
+		LocationAST tempAST;
+		for (LocationAST parNode : parameterList) {
+			tempAST = parNode.getFirstChild();
+			while (tempAST.getNextSibling() != null
+					&& tempAST.getType() != TTCN3ParserTokenTypes.Identifier)
+				tempAST = tempAST.getNextSibling();
+			parNames.add(tempAST.getFirstChild().getText()
+					+ " "
+					+ tempAST.getLine());
+		}
+
+		ArrayList<LocationAST> elList = LocationAST.getModuleDefinitionIdentifiersList(node.getParent());
+
+		for (LocationAST elNode : elList) {
+			String paramView = "";
+			if (node.getType() == TTCN3ParserTokenTypes.ModuleParDef)
+				paramView = getParamview(elNode.getFirstChild(),
+						new LinkedList<String>());
+			TTCN3Element element = new TTCN3Element(elNode	.getFirstChild()
+															.getText(),
+					LocationAST.getTTCN3ParserTokenTypeTypePrettyName(node.getType()),
+					VisitorCommonFunctions.getLocationFromIdentifier(elNode.getFirstChild()),
+					VisitorCommonFunctions.getBehaviour(node,
+							0,
+							true,
+							T3D.activeProfile.isIncludeConstructBody()),
+					getCommentFromNode(node),
+					parNames,
+					xmlPrinter.getCurrentTTCN3File(),
+					paramView,
+					getGroupNavigationPath(node),
+					elNode.getLine());
+			xmlPrinter.printElement(element, node.getLine());
+		}
+	}
+
+	// returns XML representation of the group navigation path of a node
+	private String getGroupNavigationPath(LocationAST node) {
+		LocationAST currentNode = node.getParent();
+		String path = "\n<path>";
+		int groups = 0;
+		while (currentNode.getParent() != null) {
+			if (currentNode.getType() == TTCN3ParserTokenTypes.GroupDef) {
+				path += "\n<path_group loc=\""
+						+ VisitorCommonFunctions.getLocationFromIdentifier(VisitorCommonFunctions.getIdentifier(currentNode))
+						+ "\" name=\""
+						+ VisitorCommonFunctions.getName(currentNode)
+						+ "\">";
+				groups++;
+			}
+			currentNode = currentNode.getParent();
+		}
+		for (int i = 0; i < groups; i++)
+			path += "</path_group>";
+		return path + "</path>";
+	}
+
+	// returns XML representation of the Module Parameter View from a
+	// ModuleParDef node
+	private String getParamview(LocationAST node, LinkedList<String> locations) {
+		String pview = "";
+		LinkedList<LocationAST> refList = VisitorCommonFunctions.getReferenceList(node);
+		String loc = VisitorCommonFunctions.getLocationFromIdentifier(node);
+		String type = "mpview_"
+				+ LocationAST.resolveParentsUntilType(node, TTCN3ParserTokenTypes.ModuleDefinition)
+										.getFirstChild()
+										.getText();
+		pview += "\n<"
+				+ type
+				+ " loc=\""
+				+ loc
+				+ "\" name=\""
+				+ VisitorCommonFunctions.getName(node)
+				+ "\">";
+		if (refList != null) {
+			for (LocationAST n : refList) {
+				LocationAST moduleDef = LocationAST.resolveParentsUntilType(n, TTCN3ParserTokenTypes.ModuleDefinition);
+				if (moduleDef != null
+						&& (moduleDef.getFirstChild().getType() == TTCN3ParserTokenTypes.TestcaseDef
+								|| moduleDef.getFirstChild().getType() == TTCN3ParserTokenTypes.FunctionDef || moduleDef.getFirstChild()
+																														.getType() == TTCN3ParserTokenTypes.AltstepDef)) {
+					String loc1 = VisitorCommonFunctions.getLocationFromIdentifier(VisitorCommonFunctions.getIdentifier(moduleDef));
+
+					if (!locations.contains(loc1)) {
+						locations.add(loc1);
+						pview += getParamview(VisitorCommonFunctions.getIdentifier(moduleDef),
+								locations);
+					}
+				}
+			}
+		}
+		pview += "</" + type + ">";
+
+		return pview;
+	}
+
+	public ContinueStatus visitConstDef(LocationAST node)
+			throws TTCN3BehaviorException {
+		visitElementDefinition(node);
+		return ContinueStatus.getInstance(true, true);
+	}
+
+	public ContinueStatus visitTemplateDef(LocationAST node)
+			throws TTCN3BehaviorException {
+		visitElementDefinition(node);
+		return ContinueStatus.getInstance(true, true);
+	}
+
+	public ContinueStatus visitFunctionDef(LocationAST node)
+			throws TTCN3BehaviorException {
+		visitElementDefinition(node);
+		return ContinueStatus.getInstance(true, true);
+	}
+	public ContinueStatus visitExtFunctionDef(LocationAST node)
+		throws TTCN3BehaviorException {
+		visitElementDefinition(node);
+		return ContinueStatus.getInstance(true, true);
+	}
+	public ContinueStatus visitExtConstDef(LocationAST node)
+		throws TTCN3BehaviorException {
+		visitElementDefinition(node);
+		return ContinueStatus.getInstance(true, true);
+	}
+	
+	public ContinueStatus visitTestcaseDef(LocationAST node)
+			throws TTCN3BehaviorException {
+		visitElementDefinition(node);
+		return ContinueStatus.getInstance(true, true);
+	}
+
+	public ContinueStatus visitAltstepDef(LocationAST node)
+			throws TTCN3BehaviorException {
+		visitElementDefinition(node);
+		return ContinueStatus.getInstance(true, true);
+	}
+
+	public ContinueStatus visitTypeDef(LocationAST node)
+			throws TTCN3BehaviorException {
+		visitElementDefinition(node);
+		return ContinueStatus.getInstance(true, true);
+	}
+
+	public ContinueStatus visitSignatureDef(LocationAST node)
+			throws TTCN3BehaviorException {
+		visitElementDefinition(node);
+		return ContinueStatus.getInstance(true, true);
+	}
+
+	public ContinueStatus visitModuleParDef(LocationAST node)
+			throws TTCN3BehaviorException {
+		ArrayList<LocationAST> elList = LocationAST.getModuleDefinitionIdentifiersList(node.getParent());
+
+		for (LocationAST elNode : elList) {
+			String paramView = getParamview(elNode.getFirstChild(),
+					new LinkedList<String>());
+			TTCN3Element element = new TTCN3Element(elNode	.getFirstChild()
+															.getText(),
+					LocationAST.getTTCN3ParserTokenTypeTypePrettyName(node.getType()),
+					VisitorCommonFunctions.getLocationFromIdentifier(elNode.getFirstChild()),
+					VisitorCommonFunctions.getBehaviour(getModuleParNode(elNode),
+							0,
+							true,
+							true),
+					getCommentFromNode(node),
+					new LinkedList<String>(),
+					xmlPrinter.getCurrentTTCN3File(),
+					paramView,
+					getGroupNavigationPath(node),
+					elNode.getLine());
+			xmlPrinter.printElement(element, node.getLine());
+		}
+		return ContinueStatus.getInstance(true, true);
+	}
+
+	private LocationAST getModuleParNode(LocationAST node) {
+		while (node.getType() != TTCN3ParserTokenTypes.ModulePar)
+			node = node.getParent();
+		return node;
+	}
+
+	public ContinueStatus visitTTCN3Module(LocationAST node)
+			throws TTCN3BehaviorException {
+		xmlPrinter.printModule(VisitorCommonFunctions.getName(node),
+				getCommentFromNode(node),
+				getModuleBehaviour(node, "module"),
+				node.getLine());
+		return ContinueStatus.getInstance(true, true);
+	}
+
+	public ContinueStatus visitGroupDef(LocationAST node)
+			throws TTCN3BehaviorException {
+		ArrayList<LocationAST> elList = LocationAST.getModuleDefinitionIdentifiersList(node.getParent());
+
+		for (LocationAST elNode : elList) {
+			xmlPrinter.printGroup(elNode.getFirstChild().getText(),
+					VisitorCommonFunctions.getLocationFromIdentifier(elNode.getFirstChild()),
+					getCommentFromNode(node),
+					getModuleBehaviour(node, "group"),
+					getGroupNavigationPath(node),
+					node.getLine());
+		}
+		return ContinueStatus.getInstance(true, true);
+	}
+
+	// returns the XML representation(<behaviour>) of a ModuleDefinitionList
+	// node
+	private String getModDefListBehaviour(LocationAST node, int tabs,
+			String controlPart) {
+		String tabString = "";
+		for (int i = 0; i < tabs; i++)
+			tabString += "<tab/>";
+		String b = "";
+		LocationAST ModDefNode = node.getFirstChild();
+		while (ModDefNode != null) {
+			if (ModDefNode.getType() == TTCN3ParserTokenTypes.ModuleDefinition) {
+				if (ModDefNode.getFirstChild().getType() == TTCN3ParserTokenTypes.GroupDef) {
+					LocationAST modDefListNode = ModDefNode.getFirstChild();
+					if (modDefListNode != null)
+						modDefListNode = modDefListNode.getFirstChild();
+					if (modDefListNode.getNextSibling() == null)
+						b += "\n"
+								+ tabString
+								+ "<keyword>group</keyword> "
+								+ "<link loc=\""
+								+ VisitorCommonFunctions.getLocationFromIdentifier(VisitorCommonFunctions.getIdentifier(ModDefNode))
+								+ "\">"
+								+ VisitorCommonFunctions.getName(ModDefNode)
+								+ "</link>"
+								+ "<constructbody id=\"o_"
+								+ ModDefNode.getOffset()
+								+ "\">"
+								+ " {\n"
+								+ tabString
+								+ "}</constructbody>\n";
+
+					if (modDefListNode != null)
+						modDefListNode = modDefListNode.getNextSibling();
+					if (modDefListNode != null)
+						modDefListNode = modDefListNode.getFirstChild();
+					if (modDefListNode != null)
+						b += "\n"
+								+ tabString
+								+ "<keyword>group</keyword> "
+								+ "<link loc=\""
+								+ VisitorCommonFunctions.getLocationFromIdentifier(VisitorCommonFunctions.getIdentifier(ModDefNode))
+								+ "\">"
+								+ VisitorCommonFunctions.getName(ModDefNode)
+								+ "</link>"
+								+ "<constructbody id=\"o_"
+								+ ModDefNode.getOffset()
+								+ "\">"
+								+ " {\n"
+								+ getModDefListBehaviour(modDefListNode,
+										tabs + 1,
+										"");
+				} else {
+					LocationAST elementDefNode = ModDefNode.getFirstChild();
+					if (elementDefNode.getType() == TTCN3ParserTokenTypes.Visibility)
+						elementDefNode = elementDefNode.getNextSibling();
+					if (elementDefNode.getType() == TTCN3ParserTokenTypes.ModuleParDef)
+						b += VisitorCommonFunctions.getBehaviour(elementDefNode,
+								tabs,
+								true,
+								true);
+					else
+						b += VisitorCommonFunctions.getBehaviour(elementDefNode,
+								tabs,
+								true,
+								T3D.activeProfile.isIncludeConstructBody());
+				}
+			}
+			ModDefNode = ModDefNode.getNextSibling();
+		}
+		return b
+				+ controlPart
+				+ "\n"
+				+ tabString.substring(6)
+				+ "}</constructbody>\n";
+	}
+
+	// returns the XML representation(<behaviour>) of a TTCN3Module node
+	private String getModuleBehaviour(LocationAST node, String type) {
+		LocationAST modDefListNode = null;
+		LinkedList<LocationAST> modDefListNodeList = ASTUtil.findTypeNodes(node,
+				TTCN3ParserTokenTypes.ModuleDefinitionList);
+		if (!modDefListNodeList.isEmpty())
+			modDefListNode = modDefListNodeList.getFirst();
+
+		if (modDefListNode == null)
+			return "<keyword>"
+					+ type
+					+ "</keyword> "
+					+ VisitorCommonFunctions.getName(node)
+					+ "<constructbody id=\"modulebody\">{\n}</constructbody>\n";
+
+		LinkedList<LocationAST> controlPartList = ASTUtil.findTypeNodes(node,
+				TTCN3ParserTokenTypes.ModuleControlPart);
+		LocationAST controlPartNode = null;
+		if (!controlPartList.isEmpty())
+			controlPartNode = controlPartList.getFirst();
+		String controlPartBehaviour = "";
+		if (controlPartNode != null)
+			controlPartBehaviour = VisitorCommonFunctions.getBehaviour(controlPartNode,
+					1,
+					true,
+					true);
+		String b = "<keyword>"
+				+ type
+				+ "</keyword> "
+				+ VisitorCommonFunctions.getName(node)
+				+ " <constructbody id=\"modulebody\">{\n"
+				+ getModDefListBehaviour(modDefListNode,
+						1,
+						controlPartBehaviour.replaceFirst("\\n<tab/><tab/>}\\n<tab/><tab/> ;",
+								"\n<tab/>};"));
+		modDefListNode = modDefListNode.getNextSibling();
+		return b + " ";
+	}
+
+	// returns the TTCN3Comment representation of T3Doc documentation preceding
+	// node
+	private TTCN3Comment getCommentFromNode(LocationAST node) {
+		List<TokenWithIndex> commentList = node.getCommentsBefore();
+		String rawComments = "";
+		for (TokenWithIndex c : commentList) {
+			rawComments = c.getText() + rawComments;
+		}
+		return new TTCN3Comment(rawComments, node.getType());
+	}
+
+	public void setFilename(String filename) {
+		this.filename = filename;
+	}
+
+	public String getFilename() {
+		return filename;
+	}
+
+}
Index: trunk/t3d/src/org/etsi/t3d/visitor/VisitorCommonFunctions.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/visitor/VisitorCommonFunctions.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/visitor/VisitorCommonFunctions.java	(revision 7)
@@ -0,0 +1,251 @@
+package org.etsi.t3d.visitor;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.StringEscapeUtils;
+
+import antlr.RecognitionException;
+
+import de.ugoe.cs.swe.trex.core.analyzer.astutil.ReferenceFinder;
+import de.ugoe.cs.swe.trex.core.analyzer.astutil.ReferenceWithContext;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.ASTUtil;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.KeywordExtractor;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.LocationAST;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3FormatterTreeParser;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3Lexer;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3ParserTokenTypes;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.symboltable.Scope;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.symboltable.Symbol;
+import de.ugoe.cs.swe.trex.core.formatter.TTCN3FormatterParameters;
+
+public class VisitorCommonFunctions {
+
+	
+	public static String addSyntaxHighlighting(String element){
+		String[] TTCN3_KEYWORDS = KeywordExtractor.getInstance().getLiterals().toArray(new String[0]);
+		element = " " + element;
+		for(String keyword : TTCN3_KEYWORDS)
+			element = element.replaceAll(" " + keyword + " ", " <keyword>" + keyword + "</keyword> ").replaceAll("\\n" + keyword + " ", "\n<keyword>" + keyword + "</keyword> ").replaceAll(">" + keyword + " ", "><keyword>" + keyword + "</keyword> ");
+		return element.substring(1);
+	}	
+	
+	static class TTCN3Reference{
+		public TTCN3Reference(String name, String location) {
+			this.name = name;
+			this.location = location;
+		}
+		public String name;
+		public String location;
+	}
+	//returns a list of all references of a node in the TTCN3 project
+	public static LinkedList<TTCN3Reference> getReferences(LocationAST node){		
+		LinkedList<TTCN3Reference> refvector = new LinkedList<TTCN3Reference>();
+		LinkedList<LocationAST> refNodeList = ASTUtil.findTypeNodes(node, TTCN3ParserTokenTypes.IDENTIFIER);
+		for(LocationAST IdNode : refNodeList){
+			String name = IdNode.getText();
+			String location = getDecLocationFromIdentifier(IdNode);
+			if(!location.equals("#") && !location.startsWith("trexPredefined")
+					&& isValidCrossReference(IdNode)){
+					refvector.add(new TTCN3Reference(name, location));
+			}
+		}
+		return refvector;
+	}
+	//returns true if refNode is a valid cross-reference
+	//TODO: REVIEW, seems rather pointless 
+	public static boolean isValidCrossReference(LocationAST identifierNode){
+		LocationAST declarationNode = getDeclarationNodeFromIdentifier(identifierNode);
+		LocationAST declarationModuleDefinitionNode = LocationAST.resolveParentsUntilType(declarationNode, TTCN3ParserTokenTypes.ModuleDefinition);
+
+		if(declarationModuleDefinitionNode == null) {
+			return true;
+		}
+		
+		LinkedList<String> identifierNames = new LinkedList<String>();
+		for(LocationAST node : LocationAST.getModuleDefinitionIdentifiersList(declarationModuleDefinitionNode)) {
+			identifierNames.add(node.getFirstChild().getText());
+		}
+//		if(modDefNode.getFirstChild().getType() == TTCN3ParserTokenTypes.ExtFunctionDef || modDefNode.getFirstChild().getType() == TTCN3ParserTokenTypes.ExtConstDef)
+//			return false;
+//		else {
+			return (identifierNames.contains(identifierNode.getText()));
+//		}
+	}
+	
+	public static String replaceReferences(String b, LinkedList<TTCN3Reference> reflist){
+		for(TTCN3Reference r : reflist){
+			b = b.replaceAll("( |\\t)" + r.name + " ", " <link loc=\"" + r.location + "\">" + r.name + "</link> ");
+			b = b.replaceAll("( |\\t)" + r.name + ";", " <link loc=\"" + r.location + "\">" + r.name + "</link>;");
+			b = b.replaceAll("( |\\t)" + r.name + ",", " <link loc=\"" + r.location + "\">" + r.name + "</link>,");
+			b = b.replaceAll("( |\\t)" + r.name + "\n", " <link loc=\"" + r.location + "\">" + r.name + "</link>\n");
+		}
+		return b;
+	}
+	
+	//returns the XML representation(<behaviour>) of a ModuleDefinition node
+	public static String getBehaviour(LocationAST node, int tabs, boolean syntaxHighlighting, boolean showContructBody){
+		String tabString = "";
+		for(int i=0; i < tabs; i++)
+			tabString += "<tab/>";
+		LinkedList<TTCN3Reference> reflist = getReferences(node);
+		String b = getWholeElement(node, showContructBody).replaceAll("\\r", "");
+		b = StringEscapeUtils.escapeXml(b);
+		b = replaceReferences(b, reflist);
+		String constrEndString = "";
+		if(b.contains("{")){
+			b = b.replaceFirst("\\{", "<constructbody id=\"id" + node.getOffset() + "\">{");
+			constrEndString = "</constructbody>";
+		}
+		if(syntaxHighlighting)
+			b = addSyntaxHighlighting(b);
+		
+		if(b.charAt(b.length()-2) == '}' && b.charAt(b.length()-3) != ';'){
+			return tabString + b.substring(0, b.length()-3).replaceAll("\n", "\n" + tabString + "<tab/>") + "\n" + tabString + "}" + constrEndString + "\n";
+		}else{
+			
+			String beh = tabString + b.replaceAll("\n", "\n" + tabString + "<tab/>") + ";" + constrEndString + "\n";
+			return beh.replaceAll("(\\s|\\n|<tab/>)*;", ";").replaceFirst("<tab/>\\};</constructbody>", "};</constructbody>");
+		}
+	}
+	
+	//returns String representation of a ModuleDefinition node
+	public static String getWholeElement(LocationAST node, boolean showContructBody){
+		TTCN3FormatterTreeParser prettyPrinter = new TTCN3FormatterTreeParser();
+		prettyPrinter.setFormatterParameters(new TTCN3FormatterParameters());
+		try {
+			String element;
+			if(node.getType() == TTCN3ParserTokenTypes.ModuleControlPart)
+				element = prettyPrinter.pr_ModuleControlPart(node).toString() + " ";
+			else if(node.getType() == TTCN3ParserTokenTypes.ModulePar)
+				element = "modulepar " + prettyPrinter.pr_ModulePar(node).toString() + " ";
+			else
+				element = prettyPrinter.pr_ModuleDefinition(node.getParent()).toString() + " ";
+			if(!showContructBody && element.contains("{")){
+				if(node.getType() == TTCN3ParserTokenTypes.TemplateDef && element.contains(":="))
+					element= element.substring(0, element.indexOf(":="));
+				else
+					element= element.substring(0, element.indexOf('{'));				
+			}
+			
+			return element.replaceAll("\\r","");
+		} catch (RecognitionException e) {
+			e.printStackTrace();
+		}
+		return "*** Parser error ***";
+	}
+	
+	// returns a list of every node that references the given node
+	public static LinkedList<LocationAST> getReferenceList(LocationAST node){
+		LinkedList<LocationAST> linkedRefList = new LinkedList<LocationAST>();
+		ReferenceFinder referenceFinder = new ReferenceFinder();
+		Scope scope = node.getScope();
+		if (scope == null)
+			return null;
+		Symbol symb = scope.resolve(node);
+		Map<String, List<ReferenceWithContext>> result = referenceFinder.findReferences(symb);
+
+		Iterator<List<ReferenceWithContext>> refIt = result.values().iterator();
+		if(refIt != null)
+			while(refIt.hasNext()){
+				
+				ArrayList<ReferenceWithContext> refList = (ArrayList<ReferenceWithContext>)refIt.next();
+				for(ReferenceWithContext ref : refList){
+					linkedRefList.add(ref.getReferenceNode());
+				}
+			}
+		if(linkedRefList.isEmpty())
+			return null;
+		return linkedRefList;
+	}
+	
+	
+	//returns the location of an html file that would represent node
+	public static String getLocationFromIdentifier(LocationAST node){
+		return getModuleName(node) + "-" + node.getText() + "-" + node.getOffset() + ".html";
+	}
+	
+	public static String getIdFromIdentifier(LocationAST node){
+		return getModuleName(node) + "-" + VisitorCommonFunctions.getName(node);
+	}
+	//returns the name of the TTCN3 module node belongs to 
+	public static String getModuleName(LocationAST node){
+		LocationAST module = getModule(node);
+		while(module.getFirstChild() != null)
+			module = module.getFirstChild();
+		return module.getText();
+	}
+	
+	public static LocationAST getModule(LocationAST node){
+		LocationAST module = node;
+		while(module.getParent() != null){
+			module = module.getParent();
+		}
+		return module;
+	}
+	
+	//returns the name of a TTCN3 element
+	public static String getName(LocationAST node){
+		return getIdentifier(node).getText();
+	}
+	//returns the identifier of a TTCN3 element
+	public static LocationAST getIdentifier(LocationAST node){
+		if(node.getType() == TTCN3ParserTokenTypes.Identifier)
+			return node.getFirstChild();
+		LocationAST identifier = null;
+		for(int i = 1; identifier == null && i < 1000; i++)
+			identifier = searchIdentifier(node, i);
+		
+		if(identifier.getFirstChild() != null)
+			identifier = identifier.getFirstChild();
+		return identifier;
+	}
+	//returns the first identifier node found in a certain depth or null if none is found
+	public static LocationAST searchIdentifier(LocationAST node, int depth){
+		if(node.getType() == TTCN3ParserTokenTypes.Identifier)
+			return node;
+		if(node.getParent().getType() == TTCN3ParserTokenTypes.Identifier)
+			return node;
+		if(depth <= 0)
+			return null;
+		LocationAST currNode = node.getFirstChild();
+		LocationAST identifier = null;
+		while(currNode != null && identifier == null){
+			identifier = searchIdentifier(currNode, depth-1);
+			currNode = currNode.getNextSibling();
+		}
+		return identifier;
+	}
+	
+	//returns getLocationFromIdentifier() of the declaration node of node
+	public static String getDecLocationFromIdentifier(LocationAST node){
+		LocationAST decNode = getDeclarationNodeFromIdentifier(node);
+		if(decNode != null)			
+			if(VisitorCommonFunctions.getModuleName(decNode).equals(node.getText()))
+				return node.getText() + ".html";
+			else 
+				return VisitorCommonFunctions.getLocationFromIdentifier(decNode);
+		else
+			return "#";
+	}
+	
+	public static LocationAST getDeclarationNodeFromIdentifier(LocationAST node){
+		Scope identifierScope = node.getScope();
+		Symbol decSymbol = null;
+		if(identifierScope != null)
+			decSymbol = identifierScope.resolve(node);
+		else
+			return null;
+		//Symbol decSymbol = node.getSymbol();
+		if(decSymbol != null){
+			LocationAST decNode = decSymbol.getDeclarationNode();
+			return decNode;
+		}
+		else
+			return null;
+	}
+	
+}
Index: trunk/t3d/src/org/etsi/t3d/visitor/tool/VisitorGenerator.java
===================================================================
--- trunk/t3d/src/org/etsi/t3d/visitor/tool/VisitorGenerator.java	(revision 7)
+++ trunk/t3d/src/org/etsi/t3d/visitor/tool/VisitorGenerator.java	(revision 7)
@@ -0,0 +1,70 @@
+package org.etsi.t3d.visitor.tool;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.lang.reflect.Field;
+
+import org.antlr.stringtemplate.StringTemplate;
+import org.antlr.stringtemplate.StringTemplateGroup;
+
+public class VisitorGenerator {
+
+	public VisitorGenerator() {
+
+		try {
+			StringTemplateGroup group = new StringTemplateGroup("visitorGroup",
+					"templates");
+			group.setRefreshInterval(0); // no caching
+			group.setRefreshInterval(Integer.MAX_VALUE); // no refreshing
+			StringTemplate classTemplate = group
+					.getInstanceOf("AbstractVisitor");
+			Class<?> c = Class
+					.forName("de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3ParserTokenTypes");
+			Field[] fields = c.getFields();
+
+			for (int i = 0; i < fields.length; i++) {
+				if (!isOmitField(fields[i])) {
+					classTemplate.setAttribute("nodeType", fields[i].getName());
+				}
+			}
+			File f = new File(
+					"src/org/etsi/t3d/visitor/AbstractVisitor.java");
+			saveFile(f, classTemplate.toString());
+		} catch (ClassNotFoundException e) {
+			e.printStackTrace();
+		}
+	}
+
+	// ----------------------------------------------------------------------
+
+	private boolean isOmitField(Field f) {
+		if (f.getName().contains("EOF")
+				|| f.getName().contains("NULL_TREE_LOOKAHEAD"))
+			return true;
+		return false;
+	}
+
+	// ----------------------------------------------------------------------
+
+	public void saveFile(File filename, String content) {
+		FileOutputStream fs;
+		try {
+			fs = new FileOutputStream(filename);
+			fs.write(content.getBytes());
+			fs.close();
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+	}
+
+	// ----------------------------------------------------------------------
+
+	public static void main(String[] args) {
+		new VisitorGenerator();
+	}
+
+}
Index: trunk/t3d/t3d
===================================================================
--- trunk/t3d/t3d	(revision 7)
+++ trunk/t3d/t3d	(revision 7)
@@ -0,0 +1,58 @@
+#!/bin/bash
+
+if [ "$T3D_HOME" == "" ]; then
+   echo "T3D_HOME environment variable not set! It must point to the T3D installation directory!";
+   exit;
+fi
+
+if [ "$JAVA_HOME" == "" ]; then
+   echo "JAVA_HOME environment variable not set! It must point to the directory of your Java Runtime >= 5.0";
+   exit;
+fi
+
+JAVA=$JAVA_HOME/bin/java 
+
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/com.yourkit.javaprofiler.controller_7.0.4.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/de.ugoe.cs.swe.trex.antlr_2.7.6.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/org.eclipse.core.resources_3.4.0.v20080604-1400.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/org.eclipse.core.runtime_3.4.0.v20080512.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/org.eclipse.osgi_3.4.0.v20080605-1900.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/stringtemplate.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/xpp3_min-1.1.4c.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/xstream-1.3.1.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/fop.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/commons-logging-1.1.1.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/commons-io-1.4.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/commons-lang-2.4.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/commons-cli-1.2.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/batik-util.jar
+CLASSPATH=$CLASSPATH:$T3D_HOME/lib/saxon9.jar
+
+if [ -d "$T3D_HOME/../de.ugoe.cs.swe.trex.core/bin/de" ]; then
+   CLASSPATH=$CLASSPATH:$T3D_HOME/../de.ugoe.cs.swe.trex.core/bin
+else
+   CLASSPATH=$CLASSPATH:$T3D_HOME/lib/de.ugoe.cs.swe.trex.core_0.6.0.200810271154.jar
+fi
+
+if [ -d "$T3D_HOME/../org.etsi.common/bin/org" ]; then
+   CLASSPATH=$CLASSPATH:$T3D_HOME/../org.etsi.common/bin
+else
+   CLASSPATH=$CLASSPATH:$T3D_HOME/lib/org.etsi.common.jar
+fi
+
+if [ -d "$T3D_HOME/bin/org" ]; then
+   CLASSPATH=$CLASSPATH:$T3D_HOME/bin
+else
+   CLASSPATH=$CLASSPATH:$T3D_HOME/lib/t3d.jar
+fi
+
+JAVA_CMD="$JAVA -Xmx512m -Xss128m -cp $CLASSPATH org.etsi.t3d.T3D"
+
+if [[ $# > 0 && $1 == "--echo" ]]; then
+	echo $JAVA_CMD
+else
+	$JAVA_CMD "$@"
+fi
+
+#$JAVA -Xmx512m -Xss128m -cp $CLASSPATH org.etsi.t3d.T3D "$@"
Index: trunk/t3d/t3d-launch4j.xml
===================================================================
--- trunk/t3d/t3d-launch4j.xml	(revision 7)
+++ trunk/t3d/t3d-launch4j.xml	(revision 7)
@@ -0,0 +1,48 @@
+<launch4jConfig>
+  <dontWrapJar>true</dontWrapJar>
+  <headerType>console</headerType>
+  <jar></jar>
+  <outfile>t3d.exe</outfile>
+  <errTitle></errTitle>
+  <cmdLine></cmdLine>
+  <chdir></chdir>
+  <priority>normal</priority>
+  <downloadUrl>http://java.com/download</downloadUrl>
+  <supportUrl></supportUrl>
+  <customProcName>true</customProcName>
+  <stayAlive>false</stayAlive>
+  <manifest></manifest>
+  <icon></icon>
+  <classPath>
+    <mainClass>org.etsi.t3d.T3D</mainClass>
+    <cp>%EXEDIR%\lib\com.yourkit.javaprofiler.controller_7.0.4.jar</cp>
+    <cp>%EXEDIR%\lib\de.ugoe.cs.swe.trex.antlr_2.7.6.jar</cp>
+    <cp>%EXEDIR%\lib\de.ugoe.cs.swe.trex.core_0.6.0.201003090301.jar</cp>
+    <cp>%EXEDIR%\lib\org.eclipse.core.resources_3.4.0.v20080604-1400.jar</cp>
+    <cp>%EXEDIR%\lib\org.eclipse.core.runtime_3.4.0.v20080512.jar</cp>
+    <cp>%EXEDIR%\lib\org.eclipse.equinox.common_3.4.0.v20080421-2006.jar</cp>
+    <cp>%EXEDIR%\lib\org.eclipse.osgi_3.4.0.v20080605-1900.jar</cp>
+    <cp>%EXEDIR%\lib\stringtemplate.jar</cp>
+    <cp>%EXEDIR%\lib\xpp3_min-1.1.4c.jar</cp>
+    <cp>%EXEDIR%\lib\xstream-1.3.1.jar</cp>
+    <cp>%EXEDIR%\lib\commons-cli-1.2.jar</cp>
+    <cp>%EXEDIR%\lib\fop.jar</cp>
+    <cp>%EXEDIR%\lib\commons-logging-1.1.1.jar</cp>
+    <cp>%EXEDIR%\lib\commons-io-1.4.jar</cp>
+    <cp>%EXEDIR%\lib\commons-lang-2.4.jar</cp>
+    <cp>%EXEDIR%\lib\commons-cli-1.2.jar</cp>
+    <cp>%EXEDIR%\lib\batik-util.jar</cp>
+    <cp>%EXEDIR%\lib\saxon9.jar</cp>
+    <cp>%EXEDIR%\lib\org.etsi.common.jar</cp>
+    <cp>%EXEDIR%\lib\t3d.jar</cp>
+  </classPath>
+  <jre>
+    <path></path>
+    <minVersion>1.5.0</minVersion>
+    <maxVersion></maxVersion>
+    <jdkPreference>preferJre</jdkPreference>
+    <initialHeapSize>512</initialHeapSize>
+    <maxHeapSize>512</maxHeapSize>
+    <opt>-Xss128m</opt>
+  </jre>
+</launch4jConfig>
Index: trunk/t3d/t3d.bat
===================================================================
--- trunk/t3d/t3d.bat	(revision 7)
+++ trunk/t3d/t3d.bat	(revision 7)
@@ -0,0 +1,58 @@
+@echo off
+
+if "%T3D_HOME%" == "" (
+    echo T3D_HOME environment variable not set! It must point to the T3D installation directory!
+    goto:eof
+)
+
+if "%JAVA_HOME%" == "" (
+    echo JAVA_HOME environment variable not set! It must point to the directory of your Java Runtime >= 5.0
+    goto:eof
+)
+
+setlocal
+set CLASSPATH=%T3D_HOME%\lib\com.yourkit.javaprofiler.controller_7.0.4.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\de.ugoe.cs.swe.trex.antlr_2.7.6.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\org.eclipse.core.resources_3.4.0.v20080604-1400.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\org.eclipse.core.runtime_3.4.0.v20080512.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\org.eclipse.osgi_3.4.0.v20080605-1900.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\stringtemplate.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\xpp3_min-1.1.4c.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\xstream-1.3.1.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\fop.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\commons-logging-1.1.1.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\commons-io-1.4.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\commons-lang-2.4.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\commons-cli-1.2.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\batik-util.jar
+set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\saxon9.jar
+
+set JAVA="%JAVA_HOME%\bin\java.exe"
+
+if exist "%T3D_HOME%\..\de.ugoe.cs.swe.trex.core\bin\de" (
+    set CLASSPATH=%CLASSPATH%;%T3D_HOME%\..\de.ugoe.cs.swe.trex.core\bin
+) else (
+    set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\de.ugoe.cs.swe.trex.core_0.6.0.200810271154.jar
+)
+
+if exist "%T3D_HOME%\..\org.etsi.common\bin\org" (
+    set CLASSPATH=%CLASSPATH%;%T3D_HOME%\..\org.etsi.common\bin
+) else (
+    set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\org.etsi.common.jar
+)
+
+if exist "%T3D_HOME%\bin\org" (
+    set CLASSPATH=%CLASSPATH%;%T3D_HOME%\bin
+) else (
+    set CLASSPATH=%CLASSPATH%;%T3D_HOME%\lib\t3d.jar
+)
+
+set JAVA_CMD=%JAVA% -Xmx512m -Xss128m -cp "%CLASSPATH%" org.etsi.t3d.T3D
+
+if "%1" == "--echo" (
+	echo %JAVA_CMD%
+) else (
+	%JAVA_CMD% %*
+)
+
Index: trunk/t3d/templates/AbstractVisitor.st
===================================================================
--- trunk/t3d/templates/AbstractVisitor.st	(revision 7)
+++ trunk/t3d/templates/AbstractVisitor.st	(revision 7)
@@ -0,0 +1,118 @@
+//This class has been generated automatically. Do not modify it by hand!
+package org.etsi.t3d.visitor;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Queue;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.LocationAST;
+import de.ugoe.cs.swe.trex.core.analyzer.rfparser.TTCN3ParserTokenTypes;
+//import de.ugoe.cs.swe.t3simexec.exceptions.TTCN3BehaviorException;
+import org.etsi.t3d.exceptions.TTCN3BehaviorException;
+
+public abstract class AbstractVisitor {
+
+    public int visitedNodeCount;
+
+    $nodeType:VisitMethod(); separator="\n"$
+
+    public ContinueStatus visit(LocationAST node) throws TTCN3BehaviorException {
+        visitedNodeCount++;
+        ContinueStatus continueStatus;
+        switch(node.getType()) {
+            $nodeType:VisitCase(); separator="\n"$
+        }
+        return new ContinueStatus();
+    }
+
+    public abstract void init();
+    public abstract void finish();
+    
+    public void acceptDFS(LocationAST node) throws TTCN3BehaviorException {
+        init();
+        searchASTDepthFirst(node);
+        finish();
+    }
+
+    public void acceptBFS(LocationAST node) throws TTCN3BehaviorException {
+        init();
+        searchASTBreadthFirst(node);
+        finish();
+    }
+
+    protected ContinueStatus searchASTDepthFirst(LocationAST node) throws TTCN3BehaviorException {
+        if (node == null)
+            return ContinueStatus.getInstance(true, true);
+
+        LocationAST next = node;
+        while (next != null) {
+            ContinueStatus continueStatus = visit(next);
+            if (!continueStatus.continueSearch)
+                return ContinueStatus.getInstance(false, false);
+            if (continueStatus.goDeeper)
+                searchASTDepthFirst(next.getFirstChild());
+            next = next.getNextSibling();
+        }
+        return ContinueStatus.getInstance(true, true);
+    }
+
+    protected ContinueStatus searchASTBreadthFirst(LocationAST node) throws TTCN3BehaviorException {
+        if (node == null)
+            return ContinueStatus.getInstance(true, true);
+        
+        Queue<LocationAST> open = new LinkedList<LocationAST>();
+        open.add(node);
+        searchASTBreadthFirst(open);
+        return ContinueStatus.getInstance(true, true);
+    }
+
+    private ContinueStatus searchASTBreadthFirst(Queue<LocationAST> nodes) throws TTCN3BehaviorException {
+        Queue<LocationAST> open = new LinkedList<LocationAST>();
+        Iterator<LocationAST> it = nodes.iterator();
+        while (it.hasNext()) {
+            LocationAST item = it.next();
+            while (item != null) {
+                ContinueStatus continueStatus = visit(item);
+                if (!continueStatus.continueSearch)
+                    return ContinueStatus.getInstance(false, false);
+                if ( (item.getFirstChild() != null) && (continueStatus.goDeeper) )
+                    open.add(item.getFirstChild());
+                item = item.getNextSibling();
+            }
+        }
+        if (open.size() > 0)
+            searchASTBreadthFirst(open);
+        return ContinueStatus.getInstance(true, true);
+    }
+
+    static class ContinueStatus {
+        public boolean continueSearch = true;
+        public boolean goDeeper = true;
+        private static ContinueStatus truetrue = new ContinueStatus(true, true);
+        private static ContinueStatus truefalse = new ContinueStatus(true, false);
+        private static ContinueStatus falsetrue = new ContinueStatus(false, true);
+        private static ContinueStatus falsefalse = new ContinueStatus(false, false);
+
+        private ContinueStatus() {
+            this.continueSearch = true;
+            this.goDeeper = true;
+        }
+
+        private ContinueStatus(boolean continueSearch, boolean goDeeper) {
+            this.continueSearch = continueSearch;
+            this.goDeeper = goDeeper;
+        }
+
+        public static ContinueStatus getInstance(boolean continueSearch, boolean goDeeper) {
+            if (continueSearch && goDeeper) {
+                return truetrue;
+            } else if (!continueSearch && goDeeper) {
+                return falsetrue;
+            } else if (continueSearch && !goDeeper) {
+                return truefalse;
+            } else {
+                return falsefalse;
+            }
+        }
+    }
+    
+
+}
Index: trunk/t3d/templates/VisitCase.st
===================================================================
--- trunk/t3d/templates/VisitCase.st	(revision 7)
+++ trunk/t3d/templates/VisitCase.st	(revision 7)
@@ -0,0 +1,3 @@
+            case TTCN3ParserTokenTypes.$it$:
+                continueStatus=visit$it$(node);
+                return continueStatus;
Index: trunk/t3d/templates/VisitMethod.st
===================================================================
--- trunk/t3d/templates/VisitMethod.st	(revision 7)
+++ trunk/t3d/templates/VisitMethod.st	(revision 7)
@@ -0,0 +1,1 @@
+    public ContinueStatus visit$it$(LocationAST node) throws TTCN3BehaviorException {return ContinueStatus.getInstance(true,true);}
Index: trunk/t3d/xsd/dependencies.dtd
===================================================================
--- trunk/t3d/xsd/dependencies.dtd	(revision 7)
+++ trunk/t3d/xsd/dependencies.dtd	(revision 7)
@@ -0,0 +1,9 @@
+<!ELEMENT dependencies element*>
+<!ELEMENT element reflist>
+ <!ATTLIST element id ID #REQUIRED,
+                   type CDATA #REQUIRED
+                   line CDATA #REQUIRED
+                   module CDATA #REQUIRED>
+<!ELEMENT reflist ref*>
+<!ELEMENT ref EMPTY>
+ <!ATTLIST ref id IDREF #REQUIRED> 
Index: trunk/t3d/xsd/dtd.dtd
===================================================================
--- trunk/t3d/xsd/dtd.dtd	(revision 7)
+++ trunk/t3d/xsd/dtd.dtd	(revision 7)
@@ -0,0 +1,58 @@
+<!ELEMENT project (module, element, group)*>
+
+<!ELEMENT module (name, comment?, behaviour, modulename, import*)>
+
+<!ELEMENT group (name, location, comment?, behaviour, modulename, path)>
+
+
+<!ELEMENT element (name, location, comment?, behaviour, modulename, mpview_ModuleParDef?, path)>
+ <!ATTLIST element type CDATA #REQUIRED> 
+ 
+<!ELEMENT path (path_group)>
+<!ELEMENT path_group (path_group)>
+ <!ATTLIST path_group loc CDATA #REQUIRED name CDATA #REQUIRED>
+
+<!ELEMENT mpview_ModuleParDef((mpview_TestcaseDef | mpview_FunctionDef | mpview_AltstepDef)*)
+<!ELEMENT mpview_FunctionDef((mpview_TestcaseDef | mpview_FunctionDef | mpview_AltstepDef)*)
+<!ELEMENT mpview_TestcaseDef((mpview_TestcaseDef | mpview_FunctionDef | mpview_AltstepDef)*)
+<!ELEMENT mpview_AltstepDef((mpview_TestcaseDef | mpview_FunctionDef | mpview_AltstepDef)*)
+ <!ATTLIST mpview_ModuleParDef loc CDATA #REQUIRED name CDATA #REQUIRED>
+ <!ATTLIST mpview_FunctionDef loc CDATA #REQUIRED name CDATA #REQUIRED>
+ <!ATTLIST mpview_TestcaseDef loc CDATA #REQUIRED name CDATA #REQUIRED>
+ <!ATTLIST mpview_AltstepDef loc CDATA #REQUIRED name CDATA #REQUIRED>
+ 
+<!ELEMENT behaviour (#PCDATA | keyword | constructbody | link)*>
+<!ELEMENT constructbody (#PCDATA | keyword | link)*>
+ <!ATTLIST constructbody id CDATA #REQUIRED>
+<!ELEMENT keyword (#PCDATA)>
+
+<!ELEMENT link (#PCDATA)>
+ <!ATTLIST link loc CDATA #REQUIRED>
+
+<!ELEMENT newline EMPTY>
+<!ELEMENT tab EMPTY>
+
+<!ELEMENT name (#PCDATA)>
+<!ELEMENT location (#PCDATA)>
+<!ELEMENT file (#PCDATA)>
+
+<!ELEMENT comment (author | config | desc | exception | member | param | purpose | remark | return | see | since | status | url | verdict | version)*>
+
+<!ELEMENT author (#PCDATA | esee | eurl)*>
+<!ELEMENT config (#PCDATA | esee | eurl)*>
+<!ELEMENT desc (#PCDATA | esee | eurl)*>
+<!ELEMENT exception (#PCDATA | esee | eurl)*>
+<!ELEMENT purpose (#PCDATA | esee | eurl)*>
+<!ELEMENT param (#PCDATA | esee | eurl)*>
+<!ELEMENT remark (#PCDATA | esee | eurl)*>
+<!ELEMENT return (#PCDATA | esee | eurl)*>
+<!ELEMENT see (#PCDATA)>
+<!ELEMENT since (#PCDATA | esee | eurl)*>
+<!ELEMENT status (#PCDATA | esee | eurl)*>
+<!ELEMENT url (#PCDATA | esee | eurl)*>
+<!ELEMENT verdict (#PCDATA | esee | eurl)*>
+<!ELEMENT version (#PCDATA | esee | eurl)*>
+<!ELEMENT member (#PCDATA | esee | eurl)*>
+
+<!ELEMENT esee (#PCDATA)>
+<!ELEMENT eurl (#PCDATA)>
Index: trunk/t3d/xsd/import.dtd
===================================================================
--- trunk/t3d/xsd/import.dtd	(revision 7)
+++ trunk/t3d/xsd/import.dtd	(revision 7)
@@ -0,0 +1,10 @@
+<!ELEMENT imports module*>
+
+<!ELEMENT module import*>
+
+<!ELEMENT import (import_behaviour, import*) | EMPTY>
+ <!ATTLIST import name CDATA #REQUIRED>
+<!ELEMENT import_behaviour (#PCDATA | link)*>
+
+<!ELEMENT link (#PCDATA)>
+ <!ATTLIST link loc CDATA #REQUIRED>
Index: trunk/t3d/xsd/log.dtd
===================================================================
--- trunk/t3d/xsd/log.dtd	(revision 7)
+++ trunk/t3d/xsd/log.dtd	(revision 7)
@@ -0,0 +1,13 @@
+<!ELEMENT t3dlog file*>
+ <!ATTLIST t3dlog t3dversion CDATA #REQUIRED>
+ 
+<!ELEMENT file (warning | error )*>
+ <!ATTLIST file path CDATA #REQUIRED>
+ 
+<!ELEMENT warning #PCDATA>
+ <!ATTLIST warning level CDATA #REQUIRED
+                   lines CDATA #REQUIRED>
+                   
+<!ELEMENT error #PCDATA>
+ <!ATTLIST error level CDATA #REQUIRED
+                   lines CDATA #REQUIRED>
Index: trunk/t3d/xsd/project_schema.xsd
===================================================================
--- trunk/t3d/xsd/project_schema.xsd	(revision 7)
+++ trunk/t3d/xsd/project_schema.xsd	(revision 7)
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="author">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="behaviour">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="newline" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="sign">
+    <xs:complexType mixed="true" />
+  </xs:element>
+  <xs:element name="comment">
+    <xs:complexType>
+      <xs:choice>
+        <xs:element ref="author" />
+        <xs:element ref="config" />
+        <xs:element ref="desc" />
+        <xs:element ref="exception" />
+        <xs:element ref="member" />
+        <xs:element ref="param" />
+        <xs:element ref="purpose" />
+        <xs:element ref="remark" />
+        <xs:element ref="return" />
+        <xs:element ref="see" />
+        <xs:element ref="since" />
+        <xs:element ref="status" />
+        <xs:element ref="url" />
+        <xs:element ref="verdict" />
+        <xs:element ref="version" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="config">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="desc">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="element">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="name" />
+        <xs:element ref="location" />
+        <xs:element ref="comment" minOccurs="0" />
+        <xs:element ref="behaviour" />
+        <xs:element ref="sign" />
+      </xs:sequence>
+      <xs:attribute name="type" type="xs:string" use="required" />
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="esee">
+    <xs:complexType mixed="true" />
+  </xs:element>
+  <xs:element name="eurl">
+    <xs:complexType mixed="true" />
+  </xs:element>
+  <xs:element name="exception">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="file">
+    <xs:complexType mixed="true" />
+  </xs:element>
+  <xs:element name="group">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="name" />
+        <xs:element ref="location" />
+        <xs:element ref="comment" minOccurs="0" />
+        <xs:choice>
+          <xs:element ref="group" />
+          <xs:element ref="element" />
+        </xs:choice>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="location">
+    <xs:complexType mixed="true" />
+  </xs:element>
+  <xs:element name="member">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="module">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="name" />
+        <xs:element ref="comment" minOccurs="0" />
+        <xs:choice>
+          <xs:element ref="group" />
+          <xs:element ref="element" />
+        </xs:choice>
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="name">
+    <xs:complexType mixed="true" />
+  </xs:element>
+  <xs:element name="newline" type="xs:string" />
+  <xs:element name="param">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="project">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element ref="file" minOccurs="0" maxOccurs="unbounded" />
+        <xs:element ref="module" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="purpose">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="remark">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="return">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="see">
+    <xs:complexType mixed="true" />
+  </xs:element>
+  <xs:element name="since">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="status">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="url">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="verdict">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="version">
+    <xs:complexType mixed="true">
+      <xs:choice>
+        <xs:element ref="esee" />
+        <xs:element ref="eurl" />
+      </xs:choice>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
Index: trunk/t3d/xslt/dependencies.xsl
===================================================================
--- trunk/t3d/xslt/dependencies.xsl	(revision 7)
+++ trunk/t3d/xslt/dependencies.xsl	(revision 7)
@@ -0,0 +1,49 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="/">
+ <xsl:param name="modulenames" select="//element[not(@module = preceding-sibling::*/@module)]/@module"/>
+  <html>
+  <head>
+  </head>
+  <body>
+
+   <xsl:for-each select="$modulenames">
+    <xsl:call-template name="module">
+     <xsl:with-param name="modulename" select="."/>
+    </xsl:call-template>
+   </xsl:for-each>
+
+  </body>
+  </html>
+</xsl:template>
+
+
+<xsl:template name="module">
+ <xsl:param name="modulename"/>
+ <p><xsl:value-of select="."/></p>
+ <xsl:apply-templates select="//element[@module = $modulename]"/>
+</xsl:template>
+
+<xsl:template match="element">
+ <p><a name="{@id}"><xsl:value-of select="@name"/></a></p>
+ <xsl:apply-templates select="reflist"/>
+</xsl:template>
+
+
+<xsl:template match="reflist">
+ <xsl:apply-templates select="ref"/>
+</xsl:template>
+
+<xsl:template match="ref">
+ <xsl:param name="id" select="@id"/>
+ <xsl:param name="ref" select="//element[@id = $id]"/>
+
+ <p><xsl:value-of select="'->'"/><a href="{concat('#', $id)}"><xsl:value-of select="$ref/@name"/></a></p>
+ 
+
+</xsl:template>
+
+
+</xsl:stylesheet>
Index: trunk/t3d/xslt/html.xsl
===================================================================
--- trunk/t3d/xslt/html.xsl	(revision 7)
+++ trunk/t3d/xslt/html.xsl	(revision 7)
@@ -0,0 +1,991 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="2.0">
+<xsl:output method="xhtml" indent="yes" name="html" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>
+
+<xsl:param name="folder"/>
+<xsl:param name="includeconstructbodies"/>
+<xsl:param name="hideconstructbodies"/>
+<xsl:param name="showOriginalT3DocTags"/>
+<xsl:template match="/">
+
+<!-- main view index page -->
+ <xsl:variable name="filename" select="concat('file:///', $folder, '/html/index.html')"/>
+ <xsl:value-of select="$filename"/>
+ <xsl:result-document href="{$filename}" format="html">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <xsl:call-template name="html_head">
+  <xsl:with-param name="title" select="'Main Index'"/>
+ </xsl:call-template>  
+ <body onload="init(); toggleConstructbodies('{$hideconstructbodies}');">
+  <xsl:call-template name="views"/>
+  <xsl:call-template name="main_index">
+   <xsl:with-param name="modulename" select="'_T3D_FullIndex_'"/>
+  </xsl:call-template>
+  <p id="p_header">Index</p>
+  <div id="div_content">
+   <div id="div_statistics">
+    <table id="table_statistics">
+     <tr>
+      <th>Module</th>
+      <th>Documentation Files</th>     
+      <th>Documentation Tags</th>       
+     </tr>
+     <xsl:for-each select="//module">
+      <xsl:sort select="name/text()"/>
+      <xsl:variable name="modulename" select="name/text()"/>
+      <tr>
+       <td class="td_table_statistics_modules"><a href="{concat(name/text(), '.html')}"><xsl:value-of select="name/text()"/></a></td>
+       <td>
+        <xsl:value-of select="count(//element[modulename/text() eq $modulename] | //group[modulename/text() eq $modulename]) + count(//element[modulename/text() eq $modulename and (@type eq 'Testcase' or @type eq 'Module Parameter')]) + 3"/>
+       </td>
+       <td>
+        <xsl:value-of select="count((. | //element[modulename/text() eq $modulename] | //group[modulename/text() eq $modulename])/comment/(author | config | desc | exception | member | param | purpose | remark | return | see | since | status | url | verdict | version))"/>
+       </td>       
+      </tr>       
+     </xsl:for-each>
+    </table>    
+   </div>
+  </div>
+ </body>
+</html>
+ </xsl:result-document> 
+ 
+<!-- import view index page --> 
+ <xsl:variable name="filename_import" select="concat('file:///', $folder, '/html/import_index.html')"/>
+ <xsl:value-of select="$filename_import"/>
+ <xsl:result-document href="{$filename_import}" format="html">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <xsl:call-template name="html_head">
+  <xsl:with-param name="title" select="'Import View'"/>
+ </xsl:call-template>
+ <body onload="init();">
+  <xsl:call-template name="views">
+   <xsl:with-param name="togglemode" select="'import'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_modulelist">
+   <xsl:with-param name="prefix" select="'import_'"/>
+  </xsl:call-template>
+  <p id="p_header">Import  View</p> 
+  <div id="div_content">
+   <div id="div_import">
+    <table id="table_import">
+     <tr>
+      <th><span class="imports">imports</span></th><th>Modules</th><th><span class="importedby">imported by</span></th>
+     </tr>
+     <tr>
+      <td>
+      </td>
+      <td id="table_import_modules">
+       <xsl:for-each select="//module">
+        <xsl:sort select="name/text()"/>
+        <p>
+          <a href="{concat('import_',./name/text(), '.html')}"><xsl:value-of select="./name/text()"/></a>
+        </p>
+       </xsl:for-each>
+      </td>
+      <td>
+      </td>
+     </tr>
+    </table>
+   </div>
+  </div>
+ </body>
+</html>
+ </xsl:result-document>
+
+<!-- module parameter view index page -->  
+ <xsl:variable name="filename_mp" select="concat('file:///', $folder, '/html/mp_index.html')"/>
+ <xsl:value-of select="$filename_mp"/>
+ <xsl:result-document href="{$filename_mp}" format="html">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <xsl:call-template name="html_head">
+  <xsl:with-param name="title" select="'Module Parameter/Testcase View Index'"/>
+ </xsl:call-template>
+ <body onload="mp_init()">
+  <xsl:call-template name="views">
+   <xsl:with-param name="togglemode" select="'mp'"/>
+  </xsl:call-template>
+  <xsl:call-template name="mp_index">
+   <xsl:with-param name="modulename" select="'_T3D_FullIndex_'"/>
+  </xsl:call-template>
+  <p id="p_header">Module Parameter/Testcase View</p> 
+  <div id="div_content">
+   <xsl:call-template name="mp_allTables">
+    <xsl:with-param name="parameters" select="//mpview_ModuleParDef"/>
+    <xsl:with-param name="testcases" select="//element[@type eq 'Testcase']"/>
+   </xsl:call-template>
+  </div>
+ </body>
+</html>
+ </xsl:result-document>
+<!-- /index -->
+<!-- module -->
+<xsl:for-each select="//module">
+ <xsl:variable name="currentmodule" select="name/text()"/>
+ <xsl:variable name="currentindex">
+  <xsl:call-template name="main_index">
+   <xsl:with-param name="modulename" select="$currentmodule"/>
+  </xsl:call-template>
+ </xsl:variable>
+ <xsl:variable name="currentmp_index">
+  <xsl:call-template name="mp_index">
+   <xsl:with-param name="modulename" select="$currentmodule"/>
+  </xsl:call-template>
+ </xsl:variable>
+ 
+ <xsl:variable name="filename" select="concat('file:///', $folder, '/html/', name/text(), '.html')"/>
+ <xsl:value-of select="$filename"/>
+ <xsl:result-document href="{$filename}" format="html">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <xsl:call-template name="html_head">
+  <xsl:with-param name="title" select="name/text()"/>
+ </xsl:call-template>  
+ <body onload="init('module'); toggleConstructbodies('{$hideconstructbodies}');">   
+  <xsl:call-template name="main_allElements">
+   <xsl:with-param name="this" select="."/>
+   <xsl:with-param name="currentindex" select="$currentindex"/>
+  </xsl:call-template>
+ </body>
+</html>
+</xsl:result-document>
+<!-- /module -->
+<!-- module mp_view -->
+ <xsl:variable name="filename" select="concat('file:///', $folder, '/html/mp_', name/text(), '.html')"/>
+ <xsl:value-of select="$filename"/>
+ <xsl:result-document href="{$filename}" format="html">
+  <xsl:variable name="modulename" select="name/text()"/>
+  
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <xsl:call-template name="html_head">
+  <xsl:with-param name="title" select="concat($modulename, ' - Module Parameter/Testcase View')"/>
+ </xsl:call-template>
+ <body onload="mp_init('module')">    
+  <xsl:call-template name="views">
+   <xsl:with-param name="main" select="concat($modulename, '.html')"/>
+   <xsl:with-param name="mp" select="concat($modulename, '.html')"/>
+   <xsl:with-param name="import" select="concat($modulename, '.html')"/>
+   <xsl:with-param name="togglemode" select="'mp'"/>
+  </xsl:call-template>    
+  <xsl:copy-of select="$currentmp_index"/>
+  <p id="p_header"><a href="mp_index.html">Index</a><xsl:value-of select="' / '"/><xsl:value-of select="$modulename"/> - Module Parameter/Testcase View</p> 
+  <div id="div_content">
+   <xsl:call-template name="mp_allTables">
+    <xsl:with-param name="parameters" select="//element[modulename/text() eq $modulename and @type eq 'parameter']//mpview_ModuleParDef"/>
+    <xsl:with-param name="testcases" select="//element[modulename/text() eq $modulename and @type eq 'Testcase']"/>
+   </xsl:call-template>
+  </div>
+ </body>
+</html>
+ </xsl:result-document>  
+<!-- /module mp_view -->
+
+
+<!-- element -->
+
+ <xsl:for-each select="//element[modulename/text() eq $currentmodule]">
+  <xsl:variable name="filename" select="concat('file:///', $folder, '/html/', location/text())"/>
+  <xsl:value-of select="$filename"/>
+   <xsl:result-document href="{$filename}" format="html">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <xsl:call-template name="html_head">
+  <xsl:with-param name="title" select="name/text()"/>
+ </xsl:call-template>  
+ 
+ <body onload="init('{@type}'); toggleConstructbodies('{$hideconstructbodies}');">
+  <xsl:call-template name="main_allElements">
+   <xsl:with-param name="this" select="."/>
+   <xsl:with-param name="currentindex" select="$currentindex"/>
+  </xsl:call-template>
+ </body>
+</html>
+  </xsl:result-document>
+<!-- /element -->
+<!-- element TC -->
+<xsl:if test="@type eq 'Testcase'">
+ <xsl:variable name="filename" select="concat('file:///', $folder, '/html/mp_', location/text())"/>
+  <xsl:value-of select="$filename"/>
+   <xsl:result-document href="{$filename}" format="html">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <xsl:call-template name="html_head">
+  <xsl:with-param name="title" select="name/text()"/>
+ </xsl:call-template>  
+ <body onload="mp_init('Testcase')">  
+  <xsl:call-template name="views">
+   <xsl:with-param name="main" select="location/text()"/>
+   <xsl:with-param name="mp" select="location/text()"/>
+   <xsl:with-param name="togglemode" select="'mp'"/>
+  </xsl:call-template>
+  <xsl:copy-of select="$currentmp_index"/>
+  <p id="p_header">
+   <a href="mp_index.html">Index</a> / <a href="{concat('mp_', modulename/text(), '.html')}"><xsl:value-of select="modulename/text()"/></a>
+   <xsl:if test="path/path_group">
+    <xsl:call-template name="path">
+     <xsl:with-param name="this" select="path"/>
+     <xsl:with-param name="prefix" select="'mp_'"/>
+    </xsl:call-template>
+   </xsl:if>
+   <xsl:value-of select="' / '"/> <a href="{location/text()}"><xsl:value-of select="name/text()"/></a>
+    - Module Parameter/Testcase View
+  </p>     
+  <div id="div_content">
+   <div id="div_mp">
+    <xsl:call-template name="mp_testcase_table">
+     <xsl:with-param name="this" select="."/>
+    </xsl:call-template>
+   </div>
+  </div>
+ </body>
+</html>
+ </xsl:result-document>
+</xsl:if>
+
+<xsl:if test="@type eq 'Module Parameter'">
+ <xsl:variable name="filename" select="concat('file:///', $folder, '/html/mp_', location/text())"/>
+ <xsl:value-of select="$filename"/>
+ <xsl:result-document href="{$filename}" format="html">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <xsl:call-template name="html_head">
+  <xsl:with-param name="title" select="name/text()"/>
+ </xsl:call-template>  
+ <body onload="mp_init('Module Parameter')">
+  <xsl:call-template name="views">
+   <xsl:with-param name="main" select="location/text()"/>
+   <xsl:with-param name="mp" select="location/text()"/>
+   <xsl:with-param name="togglemode" select="'mp'"/>
+  </xsl:call-template>
+  <xsl:copy-of select="$currentmp_index"/>
+  <p id="p_header">
+   <a href="mp_index.html">Index</a> / <a href="{concat('mp_', modulename/text(), '.html')}"><xsl:value-of select="modulename/text()"/></a>
+   <xsl:if test="path/path_group">
+    <xsl:call-template name="path">
+     <xsl:with-param name="this" select="path"/>
+     <xsl:with-param name="prefix" select="'mp_'"/>
+    </xsl:call-template>
+   </xsl:if>
+   <xsl:value-of select="' / '"/> <a href="{location/text()}"><xsl:value-of select="name/text()"/></a>
+    - Module Parameter/Testcase View
+  </p>
+  <div id="div_content">
+   <div id="div_mp">
+    <xsl:apply-templates select=".//mpview_ModuleParDef"/>
+   </div>
+  </div>
+ </body>
+</html>
+ </xsl:result-document>
+</xsl:if>
+ </xsl:for-each>
+<!-- /element TC -->
+ </xsl:for-each>
+<!-- groups -->
+ <xsl:for-each select="//group">
+  <xsl:variable name="grouplocation" select="location/text()"/>
+  <xsl:variable name="group" select="."/>
+  <xsl:variable name="filename" select="concat('file:///', $folder, '/html/', location/text())"/>
+  <xsl:value-of select="$filename"/>
+  <xsl:result-document href="{$filename}" format="html">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <xsl:call-template name="html_head">
+  <xsl:with-param name="title" select="name/text()"/>
+ </xsl:call-template>
+ <body onload="init('Group'); toggleConstructbodies('{$hideconstructbodies}');">
+  <xsl:call-template name="views">
+   <xsl:with-param name="main" select="./location/text()"/>
+   <xsl:with-param name="mp" select="./location/text()"/>
+  </xsl:call-template>
+  <xsl:call-template name="main_groupindex">
+   <xsl:with-param name="grouplocation" select="$grouplocation"/>
+  </xsl:call-template>
+  <xsl:call-template name="header">
+   <xsl:with-param name="this" select="."/>
+  </xsl:call-template>        
+  <xsl:call-template name="element_withcomment">
+   <xsl:with-param name="this" select="."/>
+  </xsl:call-template>
+ </body>
+</html>
+  </xsl:result-document>
+  
+  <xsl:variable name="filename" select="concat('file:///', $folder, '/html/mp_', location/text())"/>
+  <xsl:value-of select="$filename"/>
+   <xsl:result-document href="{$filename}" format="html">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <xsl:call-template name="html_head">
+  <xsl:with-param name="title" select="name/text()"/>
+ </xsl:call-template>
+ <body onload="mp_init('Group')">
+  <xsl:call-template name="views">
+   <xsl:with-param name="main" select="./location/text()"/>
+   <xsl:with-param name="mp" select="./location/text()"/>
+   <xsl:with-param name="togglemode" select="'mp'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_modulelist"/>
+  <div id="div_index">
+   <xsl:call-template name="index_grouplist">
+    <xsl:with-param name="this" select="//group[.//path_group[@loc eq $grouplocation]]"/>
+    <xsl:with-param name="prefix" select="'mp_'"/>
+   </xsl:call-template>
+
+   <xsl:call-template name="index_elementlist">
+    <xsl:with-param name="this" select="//element[@type eq 'Module Parameter' and .//path_group[@loc eq $grouplocation]]"/>
+    <xsl:with-param name="type" select="'Module Parameter'"/>
+    <xsl:with-param name="prefix" select="'mp_'"/>
+   </xsl:call-template>
+   
+   <xsl:call-template name="index_elementlist">
+    <xsl:with-param name="this" select="//element[@type eq 'Testcase' and .//path_group[@loc eq $grouplocation]]"/>
+    <xsl:with-param name="type" select="'Testcase'"/>
+    <xsl:with-param name="prefix" select="'mp_'"/>
+   </xsl:call-template>
+  </div>
+  <xsl:call-template name="header">
+   <xsl:with-param name="this" select="."/>
+   <xsl:with-param name="prefix" select="'mp_'"/>
+  </xsl:call-template>     
+  <div id="div_content">
+   <xsl:call-template name="mp_allTables">
+    <xsl:with-param name="parameters" select="//element[modulename/text() eq $group/modulename/text() and @type eq 'parameter' and .//path_group[@loc eq $group/location/text()]]//mpview_ModuleParDef"/>
+    <xsl:with-param name="testcases" select="//element[modulename/text() eq $group/modulename/text() and @type eq 'Testcase' and .//path_group[@loc eq $group/location/text()]]"/>
+   </xsl:call-template>
+  </div>  
+ </body>
+</html>
+  </xsl:result-document>
+ </xsl:for-each>
+<!-- /groups -->
+</xsl:template>
+
+<xsl:template name="main_allElements">
+<xsl:param name="this"/>
+<xsl:param name="currentindex"/>
+ <xsl:choose>
+  <xsl:when test="not($this/@type)">
+   <xsl:call-template name="views">
+    <xsl:with-param name="main" select="concat($this/name/text(), '.html')"/>
+    <xsl:with-param name="mp" select="concat($this/name/text(), '.html')"/>
+    <xsl:with-param name="import" select="concat($this/name/text(), '.html')"/>
+   </xsl:call-template>  
+  </xsl:when>
+  <xsl:when test="$this/@type eq 'Testcase' or $this/@type eq 'Module Parameter'">
+   <xsl:call-template name="views">
+    <xsl:with-param name="main" select="$this/location/text()"/>
+    <xsl:with-param name="mp" select="$this/location/text()"/>
+   </xsl:call-template> 
+  </xsl:when>
+  <xsl:otherwise>
+   <xsl:call-template name="views">
+    <xsl:with-param name="main" select="$this/location/text()"/>
+   </xsl:call-template> 
+  </xsl:otherwise>
+ </xsl:choose>
+ <xsl:copy-of select="$currentindex"/>
+ <xsl:call-template name="header">
+  <xsl:with-param name="this" select="$this"/>
+ </xsl:call-template>        
+ <xsl:call-template name="element_withcomment">
+  <xsl:with-param name="this" select="$this"/>
+ </xsl:call-template>
+</xsl:template>
+
+<xsl:template name="mp_allTables">
+ <xsl:param name="testcases"/>
+ <xsl:param name="parameters"/>
+ <div id="div_mp">
+  <p class="bold"><a href="#mpview_parameters">Module Parameters</a> <a onclick="toggle('mpview_parameters')"> (toggle)</a></p>
+  <p class="bold"><a href="#mpview_testcases">Testcases</a> <a onclick="toggle('mpview_testcases')"> (toggle)</a></p>
+  <span id="mpview_parameters">
+   <p class="bold">Module Parameters:<a name="mpview_parameters"/></p>     
+   <xsl:for-each select="$parameters">
+    <p>
+     <a href="{concat('mp_', @loc)}" id="{@name}"><xsl:value-of select="@name"/></a>
+    </p>
+    <xsl:apply-templates select="."/>
+   </xsl:for-each>     
+  </span>
+  <span id="mpview_testcases">
+   <p class="bold">Testcases:<a name="mpview_testcases"/></p>
+   <xsl:for-each select="$testcases">      
+    <p><a href="mp_{./location/text()}"><xsl:value-of select="./name/text()"/></a></p>      
+    <xsl:call-template name="mp_testcase_table">
+     <xsl:with-param name="this" select="."/>
+    </xsl:call-template>
+   </xsl:for-each>
+  </span>
+ </div>
+</xsl:template>
+
+<xsl:template name="html_head">
+<xsl:param name="title"/>
+ <head>
+  <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
+  <link rel="stylesheet" type="text/css" href="css/doc.css"/>
+   <xsl:choose>
+    <xsl:when test="$showOriginalT3DocTags eq 'true'">
+     <style type="text/css">
+       .span_tagtype{
+       	display:none;
+      }
+     </style>   
+    </xsl:when>
+    <xsl:otherwise>
+     <style type="text/css">
+      .span_tagtypeOrig{
+       	display:none;
+      }
+     </style>   
+    </xsl:otherwise>
+   </xsl:choose>
+  <script type="text/javascript" src="js/doc.js"></script>
+  <script type="text/javascript" src="js/index.js"></script>
+  <title><xsl:value-of select="$title"/></title>
+ </head>
+</xsl:template>
+
+<xsl:template name="views">
+ <xsl:param name="main"/>
+ <xsl:param name="mp"/>
+ <xsl:param name="import"/>
+ <xsl:param name="togglemode"/>
+ <div id="div_views">
+  <p id="p_views">
+   <xsl:choose>
+    <xsl:when test="$main">
+	 <a href="{$main}">Main View</a> <br/>
+	</xsl:when>
+	<xsl:otherwise>
+	 <a href="index.html">Main View</a> <br/>
+	</xsl:otherwise>
+   </xsl:choose>
+   <xsl:choose>
+    <xsl:when test="$mp">
+	 <a href="{concat('mp_', $mp)}">Module Parameter/Testcase View</a> <br/>
+	</xsl:when>
+    <xsl:otherwise>
+	 <a href="mp_index.html">Module Parameter/Testcase View</a> <br/>
+    </xsl:otherwise>
+   </xsl:choose>	 
+   <xsl:choose>
+    <xsl:when test="$import">
+	 <a href="{concat('import_', $import)}">Import  View</a> <br/>
+	</xsl:when>
+	<xsl:otherwise>
+     <a href="import_index.html">Import  View</a> <br/>
+    </xsl:otherwise>
+   </xsl:choose>
+   <xsl:choose>
+	<xsl:when test="$togglemode eq 'mp'">
+	 <br/>
+	 <a href="#" onclick="togglePaths('true')">toggle paths</a>
+	</xsl:when>
+	<xsl:when test="$togglemode eq 'import'">
+	</xsl:when>
+	<xsl:otherwise>
+	 <xsl:if test="$includeconstructbodies eq 'true'">
+	  <br/>
+	  <a href="#" onclick="toggleHideNotes()">show/hide (toggle) notes</a> | <a href="#" onclick="toggleConstructbodies('true')">toggle all</a>
+     </xsl:if>  
+    </xsl:otherwise>
+   </xsl:choose>
+  </p>
+ </div>
+ <p id="p_t3dversion">T3D <xsl:value-of select="/project/@t3dversion"/>
+  <br/>Generated <xsl:value-of select="concat(substring-before(string(current-date()), '+'), ' - ', substring-before(string(current-time()), '.'))"/></p>
+</xsl:template>
+
+<xsl:template name="main_index">
+ <xsl:param name="modulename"/>  
+ <xsl:call-template name="index_modulelist"/>
+ <div id="div_index">
+  <xsl:call-template name="index_grouplist">
+   <xsl:with-param name="this" select="//group[$modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_']"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Module Parameter' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'Module Parameter'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Constant' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'Constant'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Type' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'Type'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Signature' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'Signature'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Template' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'Template'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Function' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'Function'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Altstep' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'Altstep'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Testcase' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'Testcase'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'External Function' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'External Function'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'External Constant' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'External Constant'"/>
+  </xsl:call-template>
+  
+ </div>
+</xsl:template>
+
+<xsl:template name="mp_index">
+ <xsl:param name="modulename"/>
+ <xsl:call-template name="index_modulelist">
+  <xsl:with-param name="prefix" select="'mp_'"/>
+ </xsl:call-template>
+ <div id="div_index">
+  <xsl:call-template name="index_grouplist">
+   <xsl:with-param name="this" select="//group[$modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_']"/>
+  <xsl:with-param name="prefix" select="'mp_'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Module Parameter' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'Module Parameter'"/>
+  <xsl:with-param name="prefix" select="'mp_'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Testcase' and ($modulename eq modulename/text() or $modulename eq '_T3D_FullIndex_')]"/>
+   <xsl:with-param name="type" select="'Testcase'"/>
+  <xsl:with-param name="prefix" select="'mp_'"/>
+  </xsl:call-template>
+ </div>
+</xsl:template>
+
+<xsl:template name="index_modulelist">
+ <xsl:param name="prefix"/>
+ <div id="div_modules">
+ <p class="index_headline"><a href="{concat($prefix, 'index.html')}">Module Index</a>
+  <xsl:for-each select="//module">
+   <xsl:sort select="name/text()"/>
+   <br/><a class="padding_left_10px" href="{concat($prefix, name/text())}.html"><xsl:value-of select="name/text()"/></a>  
+  </xsl:for-each>
+ </p>
+ </div>
+</xsl:template>
+
+<xsl:template name="header">
+ <xsl:param name="this"/>
+ <xsl:param name="prefix"/>
+ <p id="p_header"><a href="{concat($prefix, 'index.html')}">Index</a><xsl:value-of select="' / '"/>
+ <xsl:if test="not($this/name/text() eq $this/modulename/text())"> 
+  <a href="{$prefix}{//module[name/text() eq $this/modulename/text()]/name/text()}.html"><xsl:value-of select="//module[name/text() eq $this/modulename/text()]/name/text()"/></a>
+ </xsl:if>
+ <xsl:if test="$this/path/path_group">
+    <xsl:call-template name="path">
+     <xsl:with-param name="this" select="$this/path"/>
+     <xsl:with-param name="prefix" select="$prefix"/>
+    </xsl:call-template>
+ </xsl:if>
+ 
+ <xsl:if test="not($this/name/text() eq $this/modulename/text())"><xsl:value-of select="' / '"/></xsl:if> <xsl:value-of select="$this/name/text()"/>
+ </p> 
+</xsl:template>
+
+<xsl:template name="element_withcomment">
+ <xsl:param name="this"/>
+ <div id="div_content">
+  <xsl:apply-templates select="comment"/>
+  <div id="div_element">
+   <xsl:apply-templates select="$this/behaviour"/>
+  </div>
+ </div>
+</xsl:template>
+
+<xsl:template name="path">
+ <xsl:param name="prefix"/>
+ <xsl:param name="this"/>
+  <xsl:for-each select="$this/path_group">
+   <xsl:call-template name="path_group">
+    <xsl:with-param name="this" select="."/>
+   <xsl:with-param name="prefix" select="$prefix"/>
+  </xsl:call-template>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="path_group">
+ <xsl:param name="prefix"/>
+ <xsl:param name="this"/>
+ <xsl:for-each select="$this/path_group">
+  <xsl:call-template name="path_group">
+   <xsl:with-param name="this" select="."/>
+   <xsl:with-param name="prefix" select="$prefix"/>
+  </xsl:call-template>
+ </xsl:for-each>
+ <xsl:value-of select="' / '"/>
+ <a href="{concat($prefix, @loc)}"><xsl:value-of select="@name"/></a>
+</xsl:template>
+
+
+<!-- comments -->
+
+<xsl:template match="comment">
+ <div id="div_comment">  
+ <xsl:if test="desc">
+  <p class="comment_headline"><span class="span_tagtype">Description:</span><span class="span_tagtypeOrig">@desc</span><br/>  
+   <xsl:apply-templates select="desc"/>
+  </p>
+ </xsl:if>  
+ <xsl:if test="author">
+  <p class="comment_headline"><span class="span_tagtype">Author(s):</span><span class="span_tagtypeOrig">@author</span><br/>  
+   <xsl:apply-templates select="author"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="config">
+  <p class="comment_headline"><span class="span_tagtype">Config:</span><span class="span_tagtypeOrig">@config</span><br/>  
+   <xsl:apply-templates select="config"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="exception">
+  <p class="comment_headline"><span class="span_tagtype">Exception(s):</span><span class="span_tagtypeOrig">@excepion</span><br/>  
+   <xsl:apply-templates select="exception"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="member">
+  <p class="comment_headline"><span class="span_tagtype">Member(s):</span><span class="span_tagtypeOrig">@member</span><br/>  
+   <xsl:apply-templates select="member"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="param">
+  <p class="comment_headline"><span class="span_tagtype">Parameter(s):</span><span class="span_tagtypeOrig">@param</span><br/>  
+   <xsl:apply-templates select="param"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="purpose">
+  <p class="comment_headline"><span class="span_tagtype">Purpose:</span><span class="span_tagtypeOrig">@purpose</span><br/>  
+   <xsl:apply-templates select="purpose"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="remark">
+  <p class="comment_headline"><span class="span_tagtype">Remark(s):</span><span class="span_tagtypeOrig">@remark</span><br/>  
+   <xsl:apply-templates select="remark"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="return">
+  <p class="comment_headline"><span class="span_tagtype">Return:</span><span class="span_tagtypeOrig">@return</span><br/>  
+   <xsl:apply-templates select="return"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="see">
+  <p class="comment_headline"><span class="span_tagtype">See:</span><span class="span_tagtypeOrig">@see</span><br/>  
+   <xsl:apply-templates select="see"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="since">
+  <p class="comment_headline"><span class="span_tagtype">Since:</span><span class="span_tagtypeorig">@since</span><br/>  
+   <xsl:apply-templates select="since"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="status">
+  <p class="comment_headline"><span class="span_tagtype">Status:</span><span class="span_tagtypeOrig">@status</span><br/>  
+   <xsl:apply-templates select="status"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="url">
+  <p class="comment_headline"><span class="span_tagtype">Url(s):</span><span class="span_tagtypeOrig">@url</span><br/>  
+   <xsl:apply-templates select="url"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="verdict">
+  <p class="comment_headline"><span class="span_tagtype">Verdict(s):</span><span class="span_tagtypeOrig">@verdict</span><br/>  
+   <xsl:apply-templates select="verdict"/>
+  </p>
+ </xsl:if>
+ <xsl:if test="version">
+  <p class="comment_headline"><span class="span_tagtype">Version:</span><span class="span_tagtypeOrig">@version</span><br/>  
+   <xsl:apply-templates select="version"/>
+  </p>
+ </xsl:if>
+ </div>
+</xsl:template>
+
+<xsl:template match="desc | author | return | remark | param | since | status | verdict | version | member | config | exception | purpose | since">
+ <xsl:apply-templates/>
+ <br/>
+</xsl:template>
+
+<xsl:template match="see | esee">
+ <xsl:variable name="text" select="normalize-space(text())" />
+ <xsl:variable name="modulename" select="''" />
+ 
+ <xsl:if test="self::esee">
+  <xsl:value-of select="'@see '"/>
+ </xsl:if>
+ <xsl:choose>
+  <xsl:when test="contains($text, '.')">  
+   <xsl:variable name="modulename" select="substring-before($text, '.')"/>
+   <xsl:variable name="elementname" select="substring-after($text, '.')"/>
+   <xsl:variable name="file" select="//element[name/text() eq $elementname and modulename/text() eq $modulename]"/>
+   <xsl:if test="$file">
+    <a href="{$file/location/text()}"><xsl:value-of select="$text"/></a>
+    <xsl:if test="self::see">
+     <br/>
+    </xsl:if>
+   </xsl:if>
+   <xsl:if test="not($file)">
+    <xsl:value-of select="$text"/>
+    <xsl:if test="self::see">
+     <br/>
+    </xsl:if>
+   </xsl:if>
+  </xsl:when>  
+  <xsl:otherwise>
+   <xsl:variable name="modulename" select="ancestor::module/name/text()"/>
+   <xsl:variable name="elementname" select="$text"/>
+   <xsl:variable name="file" select="//element[name/text() eq $elementname and modulename/text() eq $modulename]"/>
+   <xsl:if test="$file">
+    <a href="{$file/location/text()}"><xsl:value-of select="$text"/></a>
+    <xsl:if test="self::see">
+     <br/>
+    </xsl:if>
+   </xsl:if>
+   <xsl:if test="not($file)">
+    <xsl:value-of select="$text"/>
+    <xsl:if test="self::see">
+     <br/>
+    </xsl:if>
+   </xsl:if>
+  </xsl:otherwise> 
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="eurl">
+ <xsl:value-of select="' @url '"/><a href="{text()}"><xsl:value-of select="text()"/></a>
+ <xsl:value-of select="' '"/>
+</xsl:template>
+
+<xsl:template match="url">
+ <a href="{text()}"><xsl:value-of select="text()"/></a>
+</xsl:template>
+<!-- /comments -->
+<!-- behaviour -->
+
+<xsl:template match="behaviour">
+ <pre class="statement">
+  <xsl:apply-templates/>
+ </pre>
+</xsl:template>
+
+<xsl:template match="constructbody">
+ <span class="span_showhidenote"><a href="#" onclick="toggle('{@id}')">(toggle)</a> </span>
+ <span id="{@id}" class="span_constructbody"><xsl:apply-templates/></span>
+</xsl:template>
+
+<xsl:template match="keyword">
+ <span class="syntax"><xsl:value-of select="text()"/></span>
+</xsl:template>
+
+<xsl:template match="link">
+ <a href="{@loc}"><xsl:value-of select="replace(replace(text(), ' ', '&#160;'), '\t', '&#x9;')"/></a>
+</xsl:template>
+
+<!-- /behaviour -->
+
+<xsl:template name="mp_testcase_table">
+ <xsl:param name="this"/>
+ <xsl:param name="loc" select="$this/location/text()"/>
+    <table border="1">
+     <tr><th>Module Parameter</th><th class="td_path">Path</th></tr>
+     <xsl:if test="not(//mpview_TestcaseDef[@loc eq $loc])">
+      <tr><td>-</td><td>-</td></tr>
+     </xsl:if>
+     <xsl:for-each select="//mpview_TestcaseDef[@loc eq $loc]">
+      <tr><td>
+       <a href="{concat('mp_', ancestor::mpview_ModuleParDef/@loc)}"><xsl:value-of select="ancestor::mpview_ModuleParDef/@name"/></a>
+      </td>
+       <xsl:call-template name="mpview_path_testcase">
+        <xsl:with-param name="this" select="."/>
+        <xsl:with-param name="first" select="'true'"/>
+       </xsl:call-template>
+      </tr>
+     </xsl:for-each>
+    </table>
+</xsl:template>
+
+<xsl:template name="mpview_path_testcase">
+ <xsl:param name="this"/>
+ <xsl:param name="first"/> 
+ <xsl:choose>
+  <xsl:when test="$first eq 'true'">
+   <td class="td_path">
+    <xsl:value-of select="' &lt;&lt; '"/>
+    <xsl:if test="$this/parent::* and not($this/parent::element)">
+     <xsl:call-template name="mpview_path_testcase">
+      <xsl:with-param name="this" select="$this/parent::*"/>
+      <xsl:with-param name="first" select="'false'"/>
+     </xsl:call-template>
+    </xsl:if>
+    <xsl:value-of select="' &lt;&lt; '"/>
+    <a href="{$this/@loc}"><xsl:value-of select="$this/@name"/></a>
+   </td>
+  </xsl:when>
+  <xsl:when test="$this/parent::mpview_ModuleParDef">
+   <a href="{$this/@loc}"><xsl:value-of select="$this/@name"/></a>
+  </xsl:when>
+  <xsl:otherwise>
+   <xsl:if test="$this/parent::* and not($this/parent::element)">
+    <xsl:call-template name="mpview_path_testcase">
+     <xsl:with-param name="this" select="$this/parent::*"/>
+     <xsl:with-param name="first" select="'false'"/>
+    </xsl:call-template>
+   </xsl:if>
+   <xsl:value-of select="' &lt;&lt; '"/>
+   <a href="{$this/@loc}"><xsl:value-of select="$this/@name"/></a>
+  </xsl:otherwise>  
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="mpview_ModuleParDef">
+ <xsl:param name="loc" select="@loc"/>
+ <xsl:param name="name" select="//element[location/text() eq $loc]/name/text()"/>
+ <table border="1">
+  <tr>
+   <th>Testcase</th> <th class="td_path">Path</th>
+  </tr>
+  <xsl:if test="not(.//mpview_TestcaseDef)">
+   <tr><td>-</td><td class="td_path"></td></tr>
+  </xsl:if>
+  <xsl:for-each select=".//mpview_TestcaseDef">
+   <xsl:sort select="@name"/>
+   <tr>
+    <xsl:call-template name="mpview_path_modulepar">
+     <xsl:with-param name="this" select="."/>
+     <xsl:with-param name="first" select="'true'"/>
+    </xsl:call-template>
+   </tr>
+  </xsl:for-each>
+ </table>
+</xsl:template>
+
+<xsl:template name="mpview_path_modulepar">
+ <xsl:param name="this"/>
+ <xsl:param name="first"/> 
+ <xsl:choose>
+  <xsl:when test="$first eq 'true'">
+   <td>
+    <a href="{concat('mp_', $this/@loc)}"><xsl:value-of select="$this/@name"/></a>
+   </td>
+   <td class="td_path">
+    <xsl:if test="$this/parent::* and not($this/parent::element)">
+     <xsl:call-template name="mpview_path_modulepar">
+      <xsl:with-param name="this" select="$this/parent::*"/>
+      <xsl:with-param name="first" select="'false'"/>
+     </xsl:call-template>
+    </xsl:if>   
+   </td>
+  </xsl:when>
+  <xsl:otherwise>
+   <xsl:value-of select="' &gt;&gt; '"/>
+   <a href="{$this/@loc}"><xsl:value-of select="$this/@name"/></a>
+    <xsl:if test="$this/parent::* and not($this/parent::element)">
+    <xsl:call-template name="mpview_path_modulepar">
+     <xsl:with-param name="this" select="$this/parent::*"/>
+     <xsl:with-param name="first" select="'false'"/>
+    </xsl:call-template>
+   </xsl:if>
+  </xsl:otherwise>  
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="main_groupindex">
+ <xsl:param name="grouplocation"/>
+ <xsl:call-template name="index_modulelist"/>
+ <div id="div_index">
+  <xsl:call-template name="index_grouplist">
+   <xsl:with-param name="this" select="//group[.//path_group[@loc eq $grouplocation]]"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Module Parameter' and .//path_group[@loc eq $grouplocation]]"/>
+   <xsl:with-param name="type" select="'Module Parameter'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Constant' and .//path_group[@loc eq $grouplocation]]"/>
+   <xsl:with-param name="type" select="'Constant'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Type' and .//path_group[@loc eq $grouplocation]]"/>
+   <xsl:with-param name="type" select="'Type'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Signature' and .//path_group[@loc eq $grouplocation]]"/>
+   <xsl:with-param name="type" select="'Signature'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Template' and .//path_group[@loc eq $grouplocation]]"/>
+   <xsl:with-param name="type" select="'Template'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Function' and .//path_group[@loc eq $grouplocation]]"/>
+   <xsl:with-param name="type" select="'Function'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Altstep' and .//path_group[@loc eq $grouplocation]]"/>
+   <xsl:with-param name="type" select="'Altstep'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'Testcase' and .//path_group[@loc eq $grouplocation]]"/>
+   <xsl:with-param name="type" select="'Testcase'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'External Function' and .//path_group[@loc eq $grouplocation]]"/>
+   <xsl:with-param name="type" select="'External Function'"/>
+  </xsl:call-template>
+  <xsl:call-template name="index_elementlist">
+   <xsl:with-param name="this" select="//element[@type eq 'External Constant' and .//path_group[@loc eq $grouplocation]]"/>
+   <xsl:with-param name="type" select="'External Constant'"/>
+  </xsl:call-template>
+ </div>
+</xsl:template>
+
+<xsl:template name="index_grouplist">
+ <xsl:param name="this"/>
+ <xsl:param name="prefix"/>
+  <p class="index_headline"><a href="#" onclick="toggle('span_groups')">Groups</a>
+   <span id="span_groups">
+    <xsl:if test="not($this)">
+     <br/><span class="padding_left_10px"><xsl:value-of select="'-'"/></span>
+    </xsl:if>
+    <xsl:for-each select="$this">
+     <xsl:sort select="name/text()"/>
+     <br/><a class="padding_left_10px" href="{concat($prefix, location/text())}"><xsl:value-of select="name/text()"/></a>
+    </xsl:for-each>
+   </span>
+  </p>
+</xsl:template>
+
+<xsl:template name="index_elementlist">
+ <xsl:param name="this"/>
+ <xsl:param name="type"/>
+ <xsl:param name="prefix"/>
+ <p class="index_headline"><a href="#" onclick="toggle('span_{lower-case($type)}s')"><xsl:value-of select="$type"/>s</a>
+ <span id="span_{lower-case($type)}s">
+  <xsl:if test="not($this)">
+   <br/><span class="padding_left_10px"><xsl:value-of select="'-'"/></span>
+  </xsl:if>
+  <xsl:for-each select="$this">
+  <xsl:sort select="name/text()"/>
+   <br/><a class="padding_left_10px" href="{concat($prefix, location/text())}"><xsl:value-of select="name/text()"/></a>
+  </xsl:for-each>
+ </span>
+ </p>
+</xsl:template>
+</xsl:stylesheet>
Index: trunk/t3d/xslt/html_import.xsl
===================================================================
--- trunk/t3d/xslt/html_import.xsl	(revision 7)
+++ trunk/t3d/xslt/html_import.xsl	(revision 7)
@@ -0,0 +1,280 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="2.0">
+<xsl:output method="xhtml" indent="yes" name="html" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>
+
+<xsl:param name="folder"/>
+<xsl:param name="includeconstructbodies"/>
+<xsl:param name="hideconstructbodies"/>
+<xsl:param name="showOriginalT3DocTags"/>
+<!-- //TODO: add further parameters such as file names for scripts and such -->
+
+
+
+
+<xsl:template match="/">
+ <xsl:for-each select="//module">
+  <xsl:variable name="filename" select="concat('file:///', $folder, '/html/import_', @name, '.html')"/>
+  <xsl:value-of select="$filename"/>
+   <xsl:result-document href="{$filename}" format="html">   
+    <xsl:call-template name="import_module">
+     <xsl:with-param name="module" select="."/>
+    </xsl:call-template>
+  </xsl:result-document>
+ </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="import_module">
+<xsl:param name="module"/>
+<xsl:param name="modulename" select="$module/@name"/>
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+ <xsl:call-template name="html_head">
+  <xsl:with-param name="title" select="concat($modulename, ' - Import  View')"/>
+ </xsl:call-template>
+ <body>
+  <div id="div_views">
+	<p id="p_views">
+	 <a href="{concat($module/@name, '.html')}">Main View</a> <br/>
+	 <a href="{concat('mp_', $module/@name, '.html')}">Module Parameter/Testcase View</a> <br/>
+	 <a href="{concat('import_', $module/@name, '.html')}">Import  View</a> <br/>
+	 <br/>
+	 <a href="#" onclick="toggleImportDetails()">toggle import details</a>		
+	</p>
+  </div>
+  <p id="p_t3dversion">T3D <xsl:value-of select="/imports/@t3dversion"/><br/>Generated <xsl:value-of select="concat(substring-before(string(current-date()), '+'), ' - ', substring-before(string(current-time()), '.'))"/></p>
+  <div id="div_modules">
+   <p class="index_headline"><a href="import_index.html">Module Index</a>
+     <xsl:for-each select="//module">
+      <xsl:sort select="@name"/>
+      <br/><a class="padding_left_10px" href="{concat('import_', @name)}.html"><xsl:value-of select="@name"/></a>  
+     </xsl:for-each>
+   </p>
+  </div>
+  <xsl:call-template name="legend"/>
+  <p id="p_header"><a href="import_index.html">Index</a><xsl:value-of select="' / '"/><xsl:value-of select="$modulename"/> - Import  View</p> 
+  <div id="div_content">
+   <div id="div_import">
+   <table id="table_import">
+    <tr>
+     <th><span class="imports">imports</span></th><th>Modules</th><th><span class="importedby">imported by</span></th>
+    </tr>
+    <tr>
+     <td>
+      <xsl:for-each select="$module/import[not(@name = preceding-sibling::import/@name)]/@name">
+       <xsl:sort select="."/>
+       <xsl:call-template name="import">
+        <xsl:with-param name="module" select="$module"/>
+        <xsl:with-param name="importname" select="."/>
+       </xsl:call-template>
+      </xsl:for-each>      
+     <xsl:variable name="indirectimports" select="$module/import//import[not(@name = $module/import/@name) and not(@name = $module/@name)]"/>
+     <xsl:if test="$indirectimports">
+     <br/>Indirect dependencies:
+     </xsl:if>
+     <xsl:for-each select="$indirectimports[not(@name = preceding-sibling::*/@name)]/@name">
+      <xsl:sort select="."/>
+      <xsl:variable name="name" select="."/>
+      <br/>       
+      <xsl:choose>
+       <xsl:when test="//module[@name eq $name]">
+        <a class="padding_left_10px" href="{concat('import_', $name, '.html')}"><xsl:value-of select="$name"/></a>
+       </xsl:when>
+       <xsl:otherwise>
+        <span class="padding_left_10px"><xsl:value-of select="$name"/></span>
+       </xsl:otherwise>
+      </xsl:choose>
+     </xsl:for-each>
+     </td>
+     <td  id="table_import_modules">
+      <xsl:for-each select="//module">
+       <xsl:sort select="@name"/>
+       <p>
+        <xsl:call-template name="show_imports">
+         <xsl:with-param name="currentmodule" select="$module"/>   
+         <xsl:with-param name="module" select="."/>
+        </xsl:call-template>
+       </p>
+      </xsl:for-each>
+     </td>
+     <td>
+     <xsl:for-each select="//module">
+      <xsl:sort select="@name"/>
+      <xsl:if test="import[@name eq $module/@name]">
+       <a href="{concat('import_', @name, '.html')}"><xsl:value-of select="@name"/></a>
+        <xsl:call-template name="importby">
+         <xsl:with-param name="imports" select="./import[@name eq $module/@name]"/>
+        </xsl:call-template>
+      </xsl:if>
+     </xsl:for-each>
+     <xsl:variable name="indirectdependencies" select="//module[import//import[@name = $module/@name and not(@name = ancestor::module/import/@name)] and not(@name = $module/@name)]"/>
+     <xsl:if test="$indirectdependencies">
+     <br/>Indirect dependencies:
+     </xsl:if>
+     <xsl:for-each select="$indirectdependencies[not(@name = preceding-sibling::*/@name)]/@name">
+      <xsl:sort select="."/>
+      <xsl:variable name="name" select="."/>
+      <br/>       
+      <xsl:choose>
+       <xsl:when test="//module[@name eq $name]">
+        <a class="padding_left_10px" href="{concat('import_', $name, '.html')}"><xsl:value-of select="$name"/></a>
+       </xsl:when>
+       <xsl:otherwise>
+        <span class="padding_left_10px"><xsl:value-of select="$name"/></span>
+       </xsl:otherwise>
+      </xsl:choose>
+     </xsl:for-each>
+     </td>
+    </tr>
+   </table>
+  </div>
+  </div>
+ </body>
+</html>
+</xsl:template>
+
+<xsl:template name="import">
+ <xsl:param name="module"/>
+ <xsl:param name="importname"/> 
+ <xsl:if test="$module/import[@name eq $importname]">
+  <xsl:choose>
+   <xsl:when test="//module[@name = $importname]">
+    <a href="{concat('import_', ., '.html')}"><xsl:value-of select="concat(., @name)"/></a>
+   </xsl:when>
+   <xsl:otherwise>
+    <xsl:value-of select="concat(., @name)"/>
+   </xsl:otherwise>
+  </xsl:choose>
+  <table class="padding_left_10px">
+   <xsl:for-each select="$module/import[@name eq $importname]">
+     <tr>
+     <td>
+      <span class="span_importdetail">
+       <xsl:apply-templates select="import_behaviour"/><br/>
+      </span>
+     </td>
+    </tr>
+   </xsl:for-each>
+  </table>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template name="importby">
+ <xsl:param name="imports"/>
+ <xsl:if test="$imports">
+  <table class="padding_left_10px">
+   <xsl:for-each select="$imports">
+     <tr>
+     <td><span class="span_importdetail"><xsl:apply-templates select="import_behaviour"/></span></td>
+    </tr>
+   </xsl:for-each>
+  </table>
+ </xsl:if>
+</xsl:template>
+
+
+<xsl:template name="show_imports">
+ <xsl:param name="module"/>
+ <xsl:param name="currentmodule"/> 
+ <xsl:choose>
+  <xsl:when test="$currentmodule/@name eq $module/@name">
+   <xsl:call-template name="colored_module"> 
+    <xsl:with-param name="module" select="$module"/>
+    <xsl:with-param name="color" select="'selected'"/>
+   </xsl:call-template>
+  </xsl:when>  
+  <xsl:when test="$currentmodule/import[@name eq $module/@name]">
+   <xsl:call-template name="colored_module"> 
+    <xsl:with-param name="module" select="$module"/>
+    <xsl:with-param name="color" select="'imports'"/>
+   </xsl:call-template>
+  </xsl:when>
+  <xsl:when test="$currentmodule//import[@name eq $module/@name]">
+   <xsl:call-template name="colored_module"> 
+    <xsl:with-param name="module" select="$module"/>
+    <xsl:with-param name="color" select="'imports_ind'"/>
+   </xsl:call-template>
+  </xsl:when>
+  <xsl:when test="$module/import[@name eq $currentmodule/@name]">
+   <xsl:call-template name="colored_module"> 
+    <xsl:with-param name="module" select="$module"/>
+    <xsl:with-param name="color" select="'importedby'"/>
+   </xsl:call-template>
+  </xsl:when>
+  <xsl:when test="$module//import[@name eq $currentmodule/@name]">
+   <xsl:call-template name="colored_module"> 
+    <xsl:with-param name="module" select="$module"/>
+    <xsl:with-param name="color" select="'importedby_ind'"/>
+   </xsl:call-template>
+  </xsl:when>
+  <xsl:otherwise>
+   <xsl:call-template name="colored_module"> 
+    <xsl:with-param name="module" select="$module"/>
+    <xsl:with-param name="color" select="'normal'"/>
+   </xsl:call-template>
+  </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+<xsl:template name="colored_module">
+ <xsl:param name="module"/> 
+ <xsl:param name="color"/> 
+ <a href="{concat('import_', $module/@name, '.html')}" class="{$color}"><xsl:value-of select="$module/@name"/></a>
+</xsl:template>
+
+<xsl:template match="import_behaviour">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template name="html_head">
+<xsl:param name="title"/>
+ <head>
+  <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
+  <link rel="stylesheet" type="text/css" href="css/doc.css"/>
+   <xsl:choose>
+    <xsl:when test="$showOriginalT3DocTags eq 'true'">
+     <style type="text/css">
+       .span_tagtype{
+       	display:none;
+      }
+     </style>   
+    </xsl:when>
+    <xsl:otherwise>
+     <style type="text/css">
+      .span_tagtypeOrig{
+       	display:none;
+      }
+     </style>   
+    </xsl:otherwise>
+   </xsl:choose>
+  <script type="text/javascript" src="js/doc.js"></script>
+  <script type="text/javascript" src="js/index.js"></script>
+  <title><xsl:value-of select="$title"/></title>
+ </head>
+</xsl:template>
+
+<xsl:template match="link">
+ <xsl:variable name="loc" select="@loc" />
+ <a href="{@loc}"><xsl:value-of select="replace(replace(text(), ' ', '&#160;'), '\t', '&#x9;')"/></a> 
+</xsl:template>
+
+<xsl:template name="legend">
+  <div id="div_index">
+   <p>Legend:</p>
+    <p class="padding_left_10px">
+     <span class="imports">Selected module imports this module</span>
+     <br/>
+     <br/>
+     <span class="imports_ind">Selected module indirectly depends on this module</span>
+     <br/>
+     <br/>
+     <span class="importedby">Selected module is imported by this module</span>
+     <br/>
+     <br/>
+     <span class="importedby_ind">This module indirectly depends on the selected module</span>
+     <br/>
+     <br/>
+     <span class="selected">Selected module</span>    
+    </p>
+  </div>
+</xsl:template>
+
+</xsl:stylesheet>
