<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css"> <title>Erlang -- Parsetools Release Notes</title> </head> <body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container"> <script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript"> <!-- function getWinHeight() { var myHeight = 0; if( typeof( window.innerHeight ) == 'number' ) { //Non-IE myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myHeight = document.body.clientHeight; } return myHeight; } function setscrollpos() { var objf=document.getElementById('loadscrollpos'); document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2; } function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } } addEvent(window, 'load', setscrollpos); //--></script><div id="leftnav"><div class="innertube"> <img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/parsetools-2.0.6.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>Parse Tools</strong><br><strong>Release Notes</strong><br><small>Version 2.0.6</small></p> <br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Chapters</strong></small></p> <ul class="flipMenu" imagepath="../../../../doc/js/flipmenu"><li id="loadscrollpos" title="Parsetools Release Notes" expanded="true">Parsetools Release Notes<ul> <li><a href="notes.html"> Top of chapter </a></li> <li title="Parsetools 2.0.6"><a href="notes.html#id333774">Parsetools 2.0.6</a></li> <li title="Parsetools 2.0.5"><a href="notes.html#id335281">Parsetools 2.0.5</a></li> <li title="Parsetools 2.0.4"><a href="notes.html#id335309">Parsetools 2.0.4</a></li> <li title="Parsetools 2.0.3"><a href="notes.html#id335342">Parsetools 2.0.3</a></li> <li title="Parsetools 2.0.2"><a href="notes.html#id332474">Parsetools 2.0.2</a></li> <li title="Parsetools 2.0.1"><a href="notes.html#id332504">Parsetools 2.0.1</a></li> <li title="Parsetools 2.0"><a href="notes.html#id332564">Parsetools 2.0</a></li> <li title="Parsetools 1.4.7"><a href="notes.html#id335550">Parsetools 1.4.7</a></li> <li title="Parsetools 1.4.6"><a href="notes.html#id335579">Parsetools 1.4.6</a></li> <li title="Parsetools 1.4.5"><a href="notes.html#id335609">Parsetools 1.4.5</a></li> <li title="Parsetools 1.4.4"><a href="notes.html#id335643">Parsetools 1.4.4</a></li> <li title="Parsetools 1.4.3"><a href="notes.html#id330489">Parsetools 1.4.3</a></li> <li title="Parsetools 1.4.2"><a href="notes.html#id330528">Parsetools 1.4.2</a></li> <li title="Parsetools 1.4.1.1"><a href="notes.html#id330575">Parsetools 1.4.1.1</a></li> <li title="Parsetools 1.4.1"><a href="notes.html#id330607">Parsetools 1.4.1</a></li> <li title="Parsetools 1.4"><a href="notes.html#id330640">Parsetools 1.4</a></li> <li title="Parsetools 1.3.2"><a href="notes.html#id330238">Parsetools 1.3.2</a></li> <li title="Parsetools 1.3.1"><a href="notes.html#id330275">Parsetools 1.3.1</a></li> </ul> </li></ul> </div></div> <div id="content"> <div class="innertube"> <h1>1 Parsetools Release Notes</h1> <p>This document describes the changes made to the Parsetools application.</p> <h3><a name="id333774">1.1 Parsetools 2.0.6</a></h3> <h4>Fixed Bugs and Malfunctions</h4> <ul> <li> <p>Dialyzer warnings have been removed. </p> <p> Own Id: OTP-8318</p> </li> <li> <p> yecc: add warnings_as_errors option(Thanks to Tuncer ayaz)</p> <p> Own Id: OTP-9376</p> </li> <li> <p> Fix incorrect order of pseudo variables in yecc example</p> <p> The example is for converting from infix to prefix. This change uses to correct ordering of the triplet. (Thanks to Garret Smith)</p> <p> Own Id: OTP-9484</p> </li> <li> <p> Implement or fix -Werror option</p> <p> If -Werror is enabled and there are warnings no output file is written. Also make sure that error/warning reporting is consistent. (Thanks to Tuncer Ayaz)</p> <p> Own Id: OTP-9536</p> </li> <li> <p> XML files have been corrected. </p> <p> Own Id: OTP-9550 Aux Id: OTP-9541 </p> </li> </ul> <h3><a name="id335281">1.2 Parsetools 2.0.5</a></h3> <h4>Improvements and New Features</h4> <ul> <li> <p> The formating of Yecc's error messages has been improved. (Thanks to Joe Armstrong.) </p> <p> Own Id: OTP-8919</p> </li> </ul> <h3><a name="id335309">1.3 Parsetools 2.0.4</a></h3> <h4>Fixed Bugs and Malfunctions</h4> <ul> <li> <p>Running HiPE-compiled Yecc parsers no longer results in a <span class="code">function_clause</span> error.</p> <p> Own Id: OTP-8771</p> </li> </ul> <h3><a name="id335342">1.4 Parsetools 2.0.3</a></h3> <h4>Fixed Bugs and Malfunctions</h4> <ul> <li> <p>Yecc failed to report reduce/reduce conflicts where one of the reductions involved the root symbol. This bug has been fixed. (Thanks to Manolis Papadakis.)</p> <p> Own Id: OTP-8483</p> </li> <li> <p>A bug introduced in Parsetools 1.4.4 (R12B-2) has been fixed. (Thanks to Manolis Papadakis.)</p> <p> Own Id: OTP-8486</p> </li> </ul> <h3><a name="id332474">1.5 Parsetools 2.0.2</a></h3> <h4>Improvements and New Features</h4> <ul> <li> <p> Cleanups suggested by tidier and modernization of types and specs.</p> <p> Own Id: OTP-8455</p> </li> </ul> <h3><a name="id332504">1.6 Parsetools 2.0.1</a></h3> <h4>Improvements and New Features</h4> <ul> <li> <p>Leex no longer uses the deprecated <span class="code">regexp</span> module. (Thanks to Robert Virding.).</p> <p> Own Id: OTP-8231</p> </li> </ul> <h4>Fixed Bugs and Malfunctions</h4> <ul> <li> <p>A minor bug in <span class="code">leex(3)</span> has been fixed.</p> <p> Own Id: OTP-8197</p> </li> </ul> <h3><a name="id332564">1.7 Parsetools 2.0</a></h3> <h4>Improvements and New Features</h4> <ul> <li> <p>Leex, a lexical analyzer generator for Erlang, has been added to Parsetools. This initial version should be considered experimental; it is known that there will be changes and additions. (Thanks to Robert Virding.).</p> <p> Own Id: OTP-8013</p> </li> </ul> <h4>Fixed Bugs and Malfunctions</h4> <ul> <li> <p>The parsers generated by Yecc now report correct error lines when possible.</p> <p> Own Id: OTP-7969</p> </li> </ul> <h3><a name="id335550">1.8 Parsetools 1.4.7</a></h3> <h4>Fixed Bugs and Malfunctions</h4> <ul> <li> <p>A bug in yeccpre.hrl introduced in R13A has been fixed.</p> <p> Own Id: OTP-7945</p> </li> </ul> <h3><a name="id335579">1.9 Parsetools 1.4.6</a></h3> <h4>Improvements and New Features</h4> <ul> <li> <p>Updated file headers.</p> <p> Own Id: OTP-7798</p> </li> </ul> <h3><a name="id335609">1.10 Parsetools 1.4.5</a></h3> <h4>Improvements and New Features</h4> <ul> <li> <p>The <span class="code">yecc</span> grammar has been augmented with an optional header section. (Thanks to Richard Carlsson.)</p> <p> Own Id: OTP-7292</p> </li> </ul> <h3><a name="id335643">1.11 Parsetools 1.4.4</a></h3> <h4>Improvements and New Features</h4> <ul> <li> <p>The size of the code generated by Yecc has been reduced. The code is also faster.</p> <p>Macros can now be used in actions.</p> <p> Own Id: OTP-7224</p> </li> </ul> <h3><a name="id330489">1.12 Parsetools 1.4.3</a></h3> <h4>Improvements and New Features</h4> <ul> <li> <p><span class="code">tuple_size/1</span> and <span class="code">byte_size/1</span> have been substituted for <span class="code">size/1</span>.</p> <p> Own Id: OTP-7009</p> </li> </ul> <h3><a name="id330528">1.13 Parsetools 1.4.2</a></h3> <h4>Improvements and New Features</h4> <ul> <li> <p>The size of the code generated by yecc has been reduced. </p> <p>A note regarding the <span class="code">includefile</span> option: although yecc can cope with includefiles based on some earlier <span class="code">yeccpre.hrl</span> it is recommended for efficiency reasons to update includefiles as to follow the pattern in the latest <span class="code">yeccpre.hrl</span>.</p> <p> Own Id: OTP-6851</p> </li> </ul> <h3><a name="id330575">1.14 Parsetools 1.4.1.1</a></h3> <h4>Improvements and New Features</h4> <ul> <li> <p>Minor Makefile changes.</p> <p>Own Id: OTP-6689</p> </li> </ul> <h3><a name="id330607">1.15 Parsetools 1.4.1</a></h3> <h4>Fixed Bugs and Malfunctions</h4> <ul> <li> <p>A bug concerning precedence declarations of non-terminals "one level up" has been fixed in yecc.</p> <p>Own Id: OTP-6362</p> </li> </ul> <h3><a name="id330640">1.16 Parsetools 1.4</a></h3> <h4>Improvements and Fixed Bugs</h4> <p>Several modifications of Yecc have been made:</p> <ul> <li> <p>The new functions <span class="code">file/1,2</span> take the role of the old functions <span class="code">yecc/2,3,4</span>. The latter functions are no longer documented but are kept for backward compatibility.</p> </li> <li> <p>More checks of the grammar file have been implemented. Examples are warnings for unused non-terminals and duplicated declarations.</p> </li> <li> <p>Invalid pseudo variables are no longer replaced by <span class="code">'$undefined'</span> but cause a failure.</p> </li> <li> <p>Reserved words no longer need to be quoted when used as terminals or non-terminals.</p> </li> <li> <p>When compiling the generated parser file errors and warnings concerning user code refer to the grammar file, not the parser file.</p> </li> <li> <p>Yecc emits a warning if there are conflicts in the grammar. The new declaration <span class="code">Expect</span> can be used to suppress this warning.</p> </li> <li> <p>The new operator precedence declaration <span class="code">Nonassoc</span> can be used to declare operators with no associativity.</p> </li> <li> <p>Precedence can be given to more than one operator with one single operator precedence declaration.</p> </li> <li> <p>The function <span class="code">parse_and_scan/1</span> in the default includefile accepts <span class="code">{Function, A}</span> as well as {{M,F}, A} as tokenizer function. Exceptions in the tokenizer are never caught.</p> </li> <li> <p>The functions <span class="code">yecc:file/1,2</span> can be accessed from the Erlang shell via the new functions <span class="code">c:y/1,2</span> in STDLIB.</p> </li> </ul> <p>See yecc(3) for further details.</p> <p>Own Id: OTP-5366</p> <h3><a name="id330238">1.17 Parsetools 1.3.2</a></h3> <h4>Fixed Bugs and Malfunctions</h4> <ul> <li> <p>A bug in <span class="code">Yecc</span> that was introduced in R9B has been removed. Another bug concerning precedence declaration "one level up" has been fixed.</p> <p>Own Id: OTP-5461</p> </li> </ul> <h3><a name="id330275">1.18 Parsetools 1.3.1</a></h3> <h4>Fixed Bugs and Malfunctions</h4> <ul> <li> <p>A bug in the file <span class="code">parsetools/include/yeccpre.hrl</span> caused <span class="code">yecc:parse_and_scan/1</span> to always report a parse failure when the lexer reported end-of-file. This problem has been fixed.</p> <p>Own Id: OTP-5369</p> </li> </ul> </div> <div class="footer"> <hr> <p>Copyright © 1997-2011 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>