<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
	<link rel="stylesheet" type="text/css" href="http://oldforge.etsi.org/mantis/css/default.css" />
	<script type="text/javascript"><!--
		if(document.layers) {document.write("<style>td{padding:0px;}<\/style>")}
	// --></script>
	<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
	<meta http-equiv="Pragma" content="no-cache" />
	<meta http-equiv="Cache-Control" content="no-cache" />
	<meta http-equiv="Pragma-directive" content="no-cache" />
	<meta http-equiv="Cache-Directive" content="no-cache" />
	<meta http-equiv="Expires" content="Tue, 17 Dec 2024 09:20:21 GMT" />
	<link rel="shortcut icon" href="/mantis/images/favicon.ico" type="image/x-icon" />
	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Text Search" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=text" />	<link rel="search" type="application/opensearchdescription+xml" title="MantisBT: Issue Id" href="http://oldforge.etsi.org/mantis/browser_search_plugin.php?type=id" />	<title>0003476: Mistake in grammar rule TemplateBody - ETSI's Bug Tracker</title>
<script type="text/javascript" src="/mantis/javascript/min/common.js"></script>
<script type="text/javascript">var loading_lang = "Loading...";</script><script type="text/javascript" src="/mantis/javascript/min/ajax.js"></script>
</head>
<body>
<br /><table class="width100" cellspacing="1"><tr><td class="form-title" colspan="6"><div class="center">ETSI's Bug Tracker - Part 01: TTCN-3 Core Language</div></td></tr><tr><td class="form-title" colspan="6">View Issue Details</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print-category"><td class="print" width="16%">ID</td><td class="print" width="16%">Project</td><td class="print" width="16%">Category</td><td class="print" width="16%">View Status</td><td class="print" width="16%">Date Submitted</td><td class="print" width="16%">Last Update</td></tr><tr class="print"><td class="print">0003476</td><td class="print">Part 01: TTCN-3 Core Language</td><td class="print">Clarification</td><td class="print">public</td><td class="print">30-05-2008 13:33</td><td class="print">14-08-2008 05:40</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Reporter</td><td class="print">Elena de Vega</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Assigned To</td><td class="print">Thomas DeiÃŸ</td><td class="print" colspan="4">&#160;</td></tr><tr class="print"><td class="print-category">Priority</td><td class="print">normal</td><td class="print-category">Severity</td><td class="print">minor</td><td class="print-category">Reproducibility</td><td class="print">always</td></tr><tr class="print"><td class="print-category">Status</td><td class="print">closed</td><td class="print-category">Resolution</td><td class="print">fixed</td><td class="print" colspan="2">&#160;</td></tr><tr class="print"><td class="print-category">Platform</td><td class="print"></td><td class="print-category">OS</td><td class="print"></td><td class="print-category">OS Version</td><td class="print"></td></tr><tr class="print"><td class="print-category">Product Version</td><td class="print"></td><td class="print" colspan="4">&#160;</td></tr><tr><td class="print-category">Target Version</td><td class="print">v3.4.1 (published 2008-09)</td><td class="print-category">Fixed in Version</td><td class="print">v3.4.1 (published 2008-09)</td><td class="print" colspan="2">&#160;</td></tr><tr class="print"><td class="print-category">Clause Reference(s)</td><td class="print" colspan="4">Grammar, templateBody</td></tr><tr class="print"><td class="print-category">Source  (company  - Author)</td><td class="print" colspan="4">&#160;Elena de Vega - MTP</td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr class="print"><td class="print-category">Summary</td><td class="print" colspan="5">0003476: Mistake in grammar rule TemplateBody</td></tr><tr class="print"><td class="print-category">Description</td><td class="print" colspan="5">I have analyzed the TTCN-3 grammar and I think there is a mistake.<br />
<br />
This mistake is in the rule 102, its name is TemplateBody:<br />
<br />
102. TemplateBody ::= (SimpleSpec | FieldSpecList | ArrayValueOrAttrib) | [ExtraMatchingAttributes]<br />
<br />
This rule is called from these other rules:<br />
<br />
94.- TemplateDef::= TemplateKeyword BaseTemplate [DerivedDef] AssignmentChar TemplateBody <br />
105.- FieldSpec::= FieldReference AssignmentChar TemplateBody <br />
115.- ArrayElementSpec::= NotUsedSymbol | PermutationMatch | TemplateBody <br />
136.- PermutationList::= &quot;(&quot; TemplateBody { &quot;,&quot; TemplateBody } &quot;)&quot;<br />
139.- ValueOrAttribList::= &quot;(&quot; TemplateBody {&quot;,&quot; TemplateBody }+ &quot;)&quot;<br />
150.- InLineTemplate::= [(Type | Signature) Colon] [DerivedRefWithParList AssignmentChar] TemplateBody <br />
294.- TempVarInitialValue::= TemplateBody <br />
578.- Assignment::= VariableRef AssignmentChar (Expression | TemplateBody)<br />
<br />
For example, the rule TemplateDef will match with â€œnothingâ€ after AssignmentChar because you have the alternative [ExtraMatchingAttributes] in the rule TemplateBody, which is actually optional.<br />
<br />
For example the grammar matches:<br />
<br />
template MyMessageType MyTemplate:= ;<br />
<br />
or <br />
<br />
template MyMessageType MyTemplate:= length(8);<br />
<br />
<br />
The solution could be:<br />
<br />
TemplateBody ::= (SimpleSpec | FieldSpecList | ArrayValueOrAttrib) [ExtraMatchingAttributes]<br />
<br />
Itâ€™s the same rule without â€œ|â€. In this way the grammar will not match the template â€œtemplate MyMessageType MyTemplate:= ;â€ or template MyMessageType MyTemplate:= length(8);<br />
</td></tr><tr class="print"><td class="print-category">Steps To Reproduce</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Additional Information</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Tags</td><td class="print" colspan="5">No tags attached.</td></tr><tr class="print"><td class="print-category">Relationships</td><td class="print" colspan="5"></td></tr><tr class="print"><td class="print-category">Attached Files</td><td class="print" colspan="5"></td></tr><tr><td class="print-spacer" colspan="6"><hr size="1" /></td></tr><tr><td class="form-title">Issue History</td></tr><tr class="print-category"><td class="row-category-history">Date Modified</td><td class="row-category-history">Username</td><td class="row-category-history">Field</td><td class="row-category-history">Change</td></tr><tr class="print"><td class="print">30-05-2008 13:33</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=374">Elena de Vega</a></td><td class="print">New Issue</td><td class="print"></td></tr><tr class="print"><td class="print">30-05-2008 13:33</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=374">Elena de Vega</a></td><td class="print">Clause Reference(s)</td><td class="print"> =&gt; Grammar, templateBody</td></tr><tr class="print"><td class="print">30-05-2008 13:33</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=374">Elena de Vega</a></td><td class="print">Source  (company  - Author)</td><td class="print"> =&gt;  Elena de Vega - MTP</td></tr><tr class="print"><td class="print">14-07-2008 12:28</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Assigned To</td><td class="print"> =&gt; Ina Schieferdecker</td></tr><tr class="print"><td class="print">14-07-2008 12:28</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Status</td><td class="print">new =&gt; resolved</td></tr><tr class="print"><td class="print">14-07-2008 12:28</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Resolution</td><td class="print">open =&gt; fixed</td></tr><tr class="print"><td class="print">14-07-2008 12:28</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Project</td><td class="print">TTCN-3 Change Requests =&gt; Part 01: TTCN-3 Core Language</td></tr><tr class="print"><td class="print">14-07-2008 12:28</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Category</td><td class="print">TTCN-3 Core Language =&gt; Clarification</td></tr><tr class="print"><td class="print">14-07-2008 12:28</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Fixed in Version</td><td class="print"> =&gt; Edition 3.4.1 (not yet published)</td></tr><tr class="print"><td class="print">14-07-2008 12:28</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Target Version</td><td class="print"> =&gt; Edition 3.4.1 (not yet published)</td></tr><tr class="print"><td class="print">14-07-2008 14:07</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Status</td><td class="print">resolved =&gt; assigned</td></tr><tr class="print"><td class="print">14-07-2008 14:07</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=81">Ina Schieferdecker</a></td><td class="print">Assigned To</td><td class="print">Ina Schieferdecker =&gt; Thomas DeiÃŸ</td></tr><tr class="print"><td class="print">15-07-2008 09:19</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Note Added: 0006267</td><td class="print"></td></tr><tr class="print"><td class="print">15-07-2008 09:21</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Note Added: 0006268</td><td class="print"></td></tr><tr class="print"><td class="print">28-07-2008 11:49</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=374">Elena de Vega</a></td><td class="print">Note Added: 0006391</td><td class="print"></td></tr><tr class="print"><td class="print">14-08-2008 05:40</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Note Added: 0006517</td><td class="print"></td></tr><tr class="print"><td class="print">14-08-2008 05:40</td><td class="print"><a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a></td><td class="print">Status</td><td class="print">assigned =&gt; closed</td></tr></table>
<br />
<table class="width100" cellspacing="1">
<tr>
	<td class="form-title" colspan="2">
		Notes	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0006267)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				15-07-2008 09:19&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				The change to rule TemplateBody is ok.<br />
<br />
What is not ok is the rule for IfPresentMatch:<br />
142. IfPresentKeyword ::= IfKeyword PresentKeyword<br />
143. PresentKeyword ::= &quot;present&quot;<br />
<br />
This will allow to put a blank between 'if' and 'present'.<br />
The rule for IfPresentKeyword should be changed to <br />
142. IfPresentKeyword ::= &quot;ifpresent&quot;<br />
<br />
PresentKeyword is still needed (for template restriction) and has to be added to the table of keywords in clause A.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0006268)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				15-07-2008 09:21&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				In edition 3.2 the rule for IfPresentKeyword was ok,<br />
in edition 3.3 this was changed to &quot;if present&quot;, which is incorrect. Note that there is a blank in the keyword.<br />
This incorrect keyword was continued in edition 3.4<br />
(This is just for information)			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0006391)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=374">Elena de Vega</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				28-07-2008 11:49&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				I have checked the IfPresentKeyword rule in v3.2.1 and it's ok, but in the v3.3.2 there are the mistake that you have commented. This mistake is:<br />
<br />
141. IfPresentMatch ::= IfPresentKeyword<br />
142. IfPresentKeyword ::= &quot;if present&quot;<br />
<br />
In the rule 142 the two words are separated.			</td>
		</tr>
		</table>
	</td>
</tr>
<tr>
	<td class="print-spacer" colspan="2">
		<hr size="1" />
	</td>
</tr>
<tr>
	<td class="nopad" valign="top" width="20%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				(0006517)
			</td>
		</tr>
		<tr>
			<td class="print">
				<a href="http://oldforge.etsi.org/mantis/view_user_page.php?id=112">Thomas DeiÃŸ</a>&#160;&#160;&#160;
			</td>
		</tr>
		<tr>
			<td class="print">
				14-08-2008 05:40&#160;&#160;&#160;
							</td>
		</tr>
		</table>
	</td>
	<td class="nopad" valign="top" width="85%">
		<table class="hide" cellspacing="1">
		<tr>
			<td class="print">
				the subsequent issue on the split ifpresent will also be corrected in edition 3.4.1. 			</td>
		</tr>
		</table>
	</td>
</tr>
</table>
</body>
</html>
