19972010 Ericsson AB. All Rights Reserved. The contents of this file are subject to the Erlang Public License, Version 1.1, (the "License"); you may not use this file except in compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. Parsetools Release Notes otp_appnotes nil nil nil notes.xml

This document describes the changes made to the Parsetools application.

Parsetools 2.0.3
Fixed Bugs and Malfunctions

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.)

Own Id: OTP-8483

A bug introduced in Parsetools 1.4.4 (R12B-2) has been fixed. (Thanks to Manolis Papadakis.)

Own Id: OTP-8486

Parsetools 2.0.2
Improvements and New Features

Cleanups suggested by tidier and modernization of types and specs.

Own Id: OTP-8455

Parsetools 2.0.1
Improvements and New Features

Leex no longer uses the deprecated regexp module. (Thanks to Robert Virding.).

Own Id: OTP-8231

Fixed Bugs and Malfunctions

A minor bug in leex(3) has been fixed.

Own Id: OTP-8197

Parsetools 2.0
Improvements and New Features

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.).

Own Id: OTP-8013

Fixed Bugs and Malfunctions

The parsers generated by Yecc now report correct error lines when possible.

Own Id: OTP-7969

Parsetools 1.4.7
Fixed Bugs and Malfunctions

A bug in yeccpre.hrl introduced in R13A has been fixed.

Own Id: OTP-7945

Parsetools 1.4.6
Improvements and New Features

Updated file headers.

Own Id: OTP-7798

Parsetools 1.4.5
Improvements and New Features

The yecc grammar has been augmented with an optional header section. (Thanks to Richard Carlsson.)

Own Id: OTP-7292

Parsetools 1.4.4
Improvements and New Features

The size of the code generated by Yecc has been reduced. The code is also faster.

Macros can now be used in actions.

Own Id: OTP-7224

Parsetools 1.4.3
Improvements and New Features

tuple_size/1 and byte_size/1 have been substituted for size/1.

Own Id: OTP-7009

Parsetools 1.4.2
Improvements and New Features

The size of the code generated by yecc has been reduced.

A note regarding the includefile option: although yecc can cope with includefiles based on some earlier yeccpre.hrl it is recommended for efficiency reasons to update includefiles as to follow the pattern in the latest yeccpre.hrl.

Own Id: OTP-6851

Parsetools 1.4.1.1
Improvements and New Features

Minor Makefile changes.

Own Id: OTP-6689

Parsetools 1.4.1
Fixed Bugs and Malfunctions

A bug concerning precedence declarations of non-terminals "one level up" has been fixed in yecc.

Own Id: OTP-6362

Parsetools 1.4
Improvements and Fixed Bugs

Several modifications of Yecc have been made:

The new functions file/1,2 take the role of the old functions yecc/2,3,4. The latter functions are no longer documented but are kept for backward compatibility.

More checks of the grammar file have been implemented. Examples are warnings for unused non-terminals and duplicated declarations.

Invalid pseudo variables are no longer replaced by '$undefined' but cause a failure.

Reserved words no longer need to be quoted when used as terminals or non-terminals.

When compiling the generated parser file errors and warnings concerning user code refer to the grammar file, not the parser file.

Yecc emits a warning if there are conflicts in the grammar. The new declaration Expect can be used to suppress this warning.

The new operator precedence declaration Nonassoc can be used to declare operators with no associativity.

Precedence can be given to more than one operator with one single operator precedence declaration.

The function parse_and_scan/1 in the default includefile accepts {Function, A} as well as {{M,F}, A} as tokenizer function. Exceptions in the tokenizer are never caught.

The functions yecc:file/1,2 can be accessed from the Erlang shell via the new functions c:y/1,2 in STDLIB.

See yecc(3) for further details.

Own Id: OTP-5366

Parsetools 1.3.2
Fixed Bugs and Malfunctions

A bug in Yecc that was introduced in R9B has been removed. Another bug concerning precedence declaration "one level up" has been fixed.

Own Id: OTP-5461

Parsetools 1.3.1
Fixed Bugs and Malfunctions

A bug in the file parsetools/include/yeccpre.hrl caused yecc:parse_and_scan/1 to always report a parse failure when the lexer reported end-of-file. This problem has been fixed.

Own Id: OTP-5369