From b16164af2a9e0e8b09a1e9acd41bbfad4c721bf3 Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Thu, 1 Aug 2019 13:52:01 +0100 Subject: [PATCH] Updated CHANGELOG (converted to RST format to be in sync with gh-pages-gen branch). --- CHANGELOG | 1395 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 962 insertions(+), 433 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index c919787e..9766cafe 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,571 +1,1100 @@ -Version 1.2 (2019-07-??) --------------------------- -- Added EOF rule '$' and configuration 're2c:eof'. -- Added '/*!include:re2c ... */' directive and -I option. -- Added '/*!header:re2c:on*/' and '/*!header:re2c:off*/' directives. -- Added '--input-encoding ' option (#237, #250). -- Added include file with a list of definitions for Unicode character classes - (#235). -- Added '--location-format ' option, default is 'gnu' (#195). -- Added '--verbose' option. +Changelog +========= + +---- +1.2x +---- + +1.2 (2019-08-01) +~~~~~~~~~~~~~~~~ + +- Added EOF rule ``$`` and configuration ``re2c:eof``. + +- Added ``/*!include:re2c ... */`` directive and ``-I`` option. + +- Added ``/*!header:re2c:on*/`` and ``/*!header:re2c:off*/`` directives. + +- Added ``--input-encoding `` option. + + + `#237 `_: + Handle non-ASCII encoded characters in regular expressions + + `#250 `_ + UTF8 enoding + +- Added include file with a list of definitions for Unicode character classes. + + + `#235 `_: + Unicode character classes + +- Added ``--location-format `` option. + + + `#195 `_: + Please consider using Gnu format for error messages + +- Added ``--verbose`` option that prints "success" message if re2c exits + without errors. + - Added configurations for options: - '-o --output' - '-t --type-header' + + + ``-o --output`` (specify output file) + + ``-t --type-header`` (specify header file) + - Removed configurations for internal/debug options. -- Extended '-r' option: allow to mix multiple /*!rules:re2c*/, /*!use:re2c*/ - and /*!re2c*/ blocks (#55). -- Fixed '-F --flex-support' option: parsing and operator precedence (#229, - #242). -- Changed difference operator '/' to apply before encoding expansion of - operands (#236). -- Changed output generation of output file to be atomic (#245). -- Co-authored research paper "Efficient POSIX Submatch Extraction on NFA". -- Added experimental libre2c library ('--enable-libs' configure option) - with the following algorithms: - TDFA with leftmost-greedy disambiguation - TDFA with POSIX disambiguation (Okui-Suzuki algorithm) - TNFA with leftmost-greedy disambiguation - TNFA with POSIX disambiguation (Okui-Suzuki algorithm) - TNFA with lazy POSIX disambiguation (Okui-Suzuki algorithm) - TNFA with POSIX disambiguation (Kuklewicz algorithm) - TNFA with POSIX disambiguation (Cox algorithm) -- Added debug subsystem ('--enable-debug' configure option) and new debug + +- Extended ``-r`` option: allow to mix multiple ``/*!rules:re2c*/``, + ``/*!use:re2c*/`` and ``/*!re2c*/`` blocks. + + + `#55 `_: + allow standard re2c blocks in reuse mode + +- Fixed ``-F --flex-support`` option: parsing and operator precedence. + + + `#229 `_: + re2c option -F (flex syntax) broken + + `#242 `_: + Operator precedence with --flex-syntax is broken + +- Changed difference operator ``/`` to apply before encoding expansion of + operands. + + + `#236 `_: + Support range difference with variable-length encodings + +- Changed output generation of output file to be atomic. + + + `#245 `_: + re2c output is not atomic + +- Authored research paper "Efficient POSIX Submatch Extraction on NFA" + together with Dr Angelo Borsotti. + +- Added experimental libre2c library (``--enable-libs`` configure option) with + the following algorithms: + + + TDFA with leftmost-greedy disambiguation + + TDFA with POSIX disambiguation (Okui-Suzuki algorithm) + + TNFA with leftmost-greedy disambiguation + + TNFA with POSIX disambiguation (Okui-Suzuki algorithm) + + TNFA with lazy POSIX disambiguation (Okui-Suzuki algorithm) + + TNFA with POSIX disambiguation (Kuklewicz algorithm) + + TNFA with POSIX disambiguation (Cox algorithm) + +- Added debug subsystem (``--enable-debug`` configure option) and new debug options: - '-dump-cfg' - '-dump-interf' - '-dump-closure-stats' + + + ``-dump-cfg`` (dump control flow graph of tag variables) + + ``-dump-interf`` (dump interference table of tag variables) + + ``-dump-closure-stats`` (dump epsilon-closure statistics) + - Added internal options: - '--posix-closure ' -- Fixed a number of crashes found by American Fuzzy Lop fuzzer (#226, #227, - #228, #231, #232, #233, #234, #238). -- Fixed handling of newlines: correctly parse multi-character newlines CR LF - in '#line' directives; consistently convert all newlines in the generated - file to Unix-style LF. -- Changed default tarball format from .gz to .xz (#221). -- Fixed a number of other bugs and issues (#2, #6, #10, #44, #49, #98, #104, - #105, #114, #120, #167, #168, #180, #182, #196, #198, #210, #215, #220, - #223, #224, #225, #230, #239, #241, #243, #246, #247, #248, #251). - -Version 1.1.1 (2018-08-30) --------------------------- -- Fixed bug #211 re2c '-V' throws 'std::out_of_range' (version to vernum conversion). - -Version 1.1 (2018-08-27) --------------------------- + + + ``--posix-closure `` (switch between shortest-path algorithms + used for the construction of POSIX closure) + +- Fixed a number of crashes found by American Fuzzy Lop fuzzer: + + + `#226 `_, + `#227 `_, + `#228 `_, + `#231 `_, + `#232 `_, + `#233 `_, + `#234 `_, + `#238 `_ + +- Fixed handling of newlines: + + + correctly parse multi-character newlines CR LF in ``#line`` directives + + consistently convert all newlines in the generated file to Unix-style LF + +- Changed default tarball format from .gz to .xz. + + + `#221 `_: + big source tarball + +- Fixed a number of other bugs and resolved issues: + + + `#2 `_: abort + + `#6 `_: segfault + + `#10 `_: + lessons/002_upn_calculator/calc_002 doesn't produce a useful example program + + `#44 `_: + Access violation when translating the attached file + + `#49 `_: + wildcard state \000 rules makes lexer behave weard + + `#98 `_: + Transparent handling of #line directives in input files + + `#104 `_: + Improve const-correctness + + `#105 `_: + Conversion of pointer parameters into references + + `#114 `_: + Possibility of fixing bug 2535084 + + `#120 `_: + condition consisting of default rule only is ignored + + `#167 `_: + Add word boundary support + + `#168 `_: + Wikipedia's article on re2c + + `#180 `_: + Comment syntax? + + `#182 `_: + yych being set by YYPEEK () and then not used + + `#196 `_: + Implicit type conversion warnings + + `#198 `_: + no match for ‘operator!=’ in ‘i != std::vector<_Tp, _Alloc>::rend() [with _Tp = re2c::bitmap_t, _Alloc = std::allocator]()’ + + `#210 `_: + How to build re2c in windows? + + `#215 `_: + A memory read overrun issue in s_to_n32_unsafe.cc + + `#220 `_: + src/dfa/dfa.h: simplify constructor to avoid g++-3.4 bug + + `#223 `_: + Fix typo + + `#224 `_: + src/dfa/closure_posix.cc: pack() tweaks + + `#225 `_: + Documentation link is broken in libre2c/README + + `#230 `_: + Changes for upcoming Travis' infra migration + + `#239 `_: + Push model example has wrong re2c invocation, breaks guide + + `#241 `_: + Guidance on how to use re2c for full-duplex command & response protocol + + `#243 `_: + A code generated for period (.) requires 4 bytes + + `#246 `_: + Please add a license to this repo + + `#247 `_: + Build failure on current Cygwin, probably caused by force-fed c++98 mode + + `#248 `_: + distcheck still looks for README + + `#251 `_: + Including what you use is find, but not without inclusion guards + +- Updated documentation and website. + + +---- +1.1x +---- + +1.1.1 (2018-08-30) +~~~~~~~~~~~~~~~~~~ + +- Fixed bug `#211 `_: + re2c ``-V`` throws ``std::out_of_range`` (version to vernum conversion). + +1.1 (2018-08-27) +~~~~~~~~~~~~~~~~ + - Replaced Kuklewicz POSIX disambiguation algorithm with Okui algorithm. - Optimized GOR1 algorithm (computation of tagged epsilon-closure). -- Added option "--conditions" (an alias for "-c" and "--start-conditions"). -- Fixed bug #201 Bugs with option: 're2c:flags:no-debug-info'. +- Added option ``--conditions`` (an alias for ``-c --start-conditions``). +- Fixed bug `#201 `_: + Bugs with option: ``re2c:flags:no-debug-info``. - Reworked first part of TDFA paper. -Version 1.0.3 (2017-11-08) --------------------------- -- Fixed bug #198 (build error on MacOS with GCC-4.2.1) +---- +1.0x +---- + +1.0.3 (2017-11-08) +~~~~~~~~~~~~~~~~~~ -Version 1.0.2 (2017-08-26) --------------------------- -- Fixed bug #194 Build with "--enable-docs" +- Fixed bug `#198 `_: + build error on MacOS with GCC-4.2.1 + +1.0.2 (2017-08-26) +~~~~~~~~~~~~~~~~~~ + +- Fixed bug `#194 `_: + Build with ``--enable-docs`` - Updated documentation. -Version 1.0.1 (2017-08-11) --------------------------- -- Fixed bug #193 1.0 build failure on macOS: error: calling a private constructor of class 're2c::Rule' -- Added paper "Tagged Deterministic Finite Automata with Lookahead" to distribution +1.0.1 (2017-08-11) +~~~~~~~~~~~~~~~~~~ + +- Fixed bug `#193 `_: + 1.0 build failure on macOS: error: calling a private constructor of class + 're2c::Rule' + +- Added paper "Tagged Deterministic Finite Automata with Lookahead" to the + distribution files. + +1.0 (2017-08-11) +~~~~~~~~~~~~~~~~ -Version 1.0 (2017-08-11) ------------------------- - Added options: - '-P --posix-captures' (POSIX-compliant capturing groups) - '-T --tags' (standalone tags with leftmost greedy disambiguation) - '--no-lookahead' - '--no-optimize-tags' - '--eager-skip' - '--dump-nfa' - '--dump-dfa-raw' - '--dump-dfa-det' - '--dump-dfa-tagopt' - '--dump-dfa-min' - '--dump-adfa' + + + ``-P --posix-captures`` (POSIX-compliant capturing groups) + + ``-T --tags`` (standalone tags with leftmost greedy disambiguation) + + ``--no-lookahead`` + + ``--no-optimize-tags`` + + ``--eager-skip`` + + ``--dump-nfa`` + + ``--dump-dfa-raw`` + + ``--dump-dfa-det`` + + ``--dump-dfa-tagopt`` + + ``--dump-dfa-min`` + + ``--dump-adfa`` + - Added new syntax: - '@' - '#' + + + ``@`` + + ``#`` + - Added new directives: - '/*!stags:re2c ... */' - '/*!mtags:re2c ... */' - '/*!maxnmatch:re2c ... */' + + + ``/*!stags:re2c ... */`` + + ``/*!mtags:re2c ... */`` + + ``/*!maxnmatch:re2c ... */`` + - Added new API: - 'YYSTAGN (t)' - 'YYSTAGP (t)' - 'YYMTAGN (t)' - 'YYMTAGP (t)' - 'YYRESTORETAG (t)' - 'YYMAXNMATCH' - 'yynmatch' - 'yypmatch' + + + ``YYSTAGN (t)`` + + ``YYSTAGP (t)`` + + ``YYMTAGN (t)`` + + ``YYMTAGP (t)`` + + ``YYRESTORETAG (t)`` + + ``YYMAXNMATCH`` + + ``yynmatch`` + + ``yypmatch`` + - Added inplace confgurations: - 're2c:define:YYSTAGN' - 're2c:define:YYSTAGP' - 're2c:define:YYMTAGN' - 're2c:define:YYMTAGP' - 're2c:define:YYRESTORETAG' - 're2c:flags:8' or 're2c:flags:utf-8'' - 're2c:flags:b' or 're2c:flags:bit-vectors' - 're2c:flags:case-insensitive' - 're2c:flags:case-inverted' - 're2c:flags:d' or 're2c:flags:debug-output' - 're2c:flags:dfa-minimization' - 're2c:flags:eager-skip' - 're2c:flags:e' or 're2c:flags:ecb' - 're2c:flags:empty-class' - 're2c:flags:encoding-policy' - 're2c:flags:g' or 're2c:flags:computed-gotos' - 're2c:flags:i' or 're2c:flags:no-debug-info' - 're2c:flags:input' - 're2c:flags:lookahead' - 're2c:flags:optimize-tags' - 're2c:flags:P' or 're2c:flags:posix-captures' - 're2c:flags:s' or 're2c:flags:nested-ifs' - 're2c:flags:T' or 're2c:flags:tags' - 're2c:flags:u' or 're2c:flags:unicode' - 're2c:flags:w' or 're2c:flags:wide-chars' - 're2c:flags:x' or 're2c:flags:utf-16' - 're2c:tags:expression' - 're2c:tags:prefix' -- Added warning '-Wnondeterministic-tags' + + + ``re2c:define:YYSTAGN`` + + ``re2c:define:YYSTAGP`` + + ``re2c:define:YYMTAGN`` + + ``re2c:define:YYMTAGP`` + + ``re2c:define:YYRESTORETAG`` + + ``re2c:flags:8`` or ``re2c:flags:utf-8```` + + ``re2c:flags:b`` or ``re2c:flags:bit-vectors`` + + ``re2c:flags:case-insensitive`` + + ``re2c:flags:case-inverted`` + + ``re2c:flags:d`` or ``re2c:flags:debug-output`` + + ``re2c:flags:dfa-minimization`` + + ``re2c:flags:eager-skip`` + + ``re2c:flags:e`` or ``re2c:flags:ecb`` + + ``re2c:flags:empty-class`` + + ``re2c:flags:encoding-policy`` + + ``re2c:flags:g`` or ``re2c:flags:computed-gotos`` + + ``re2c:flags:i`` or ``re2c:flags:no-debug-info`` + + ``re2c:flags:input`` + + ``re2c:flags:lookahead`` + + ``re2c:flags:optimize-tags`` + + ``re2c:flags:P`` or ``re2c:flags:posix-captures`` + + ``re2c:flags:s`` or ``re2c:flags:nested-ifs`` + + ``re2c:flags:T`` or ``re2c:flags:tags`` + + ``re2c:flags:u`` or ``re2c:flags:unicode`` + + ``re2c:flags:w`` or ``re2c:flags:wide-chars`` + + ``re2c:flags:x`` or ``re2c:flags:utf-16`` + + ``re2c:tags:expression`` + + ``re2c:tags:prefix`` + +- Added warning ``-Wnondeterministic-tags``. + - Added fuzz-testing scripts -- Added paper "Tagged Deterministic Finite Automata with Lookahead" + +- Added paper "Tagged Deterministic Finite Automata with Lookahead". + - Fixed bugs: - #121 "trailing contexts are fundamentally broken" - #135 "In installation 'make check' give syntax error" - #137 "run_tests.sh fail when running configure script with absolute path" - #138 "website improvement" - #141 "Tests under Windows" - #142 "segvault with null terminated input" - #145 "Values for enum YYCONDTYPE are not generated when default rules with conditions are used" - #147 "Please add symbol name to "can't find symbol" error message" - #152 "Line number in #line directive after enum YYCONDTYPE is 0-based" - #156 "Build with Visual Studio 14 2015: symbol name conflict" - #158 "Inconsistent forward declaration of struct/class vs definition" - #160 "Open text files with "wb" causes issues on Windows" - #162 "Reading files with "rb" causes issues in Windows" - #165 "Trailing context consumed if initial expression matches it" - #176 "re2c help message is too wide for most terminals" - #184 "Small documentation issue" - #186 "Difference operator sometimes doesn't work with utf-8" + + + `#121 `_: + trailing contexts are fundamentally broken + + `#135 `_: + In installation ``make check`` give syntax error + + `#137 `_: + run_tests.sh fail when running configure script with absolute path + + `#138 `_: + website improvement + + `#141 `_: + Tests under Windows + + `#142 `_: + segvault with null terminated input + + `#145 `_: + Values for enum YYCONDTYPE are not generated when default rules with conditions are used + + `#147 `_: + Please add symbol name to "can't find symbol" error message + + `#152 `_: + Line number in #line directive after enum YYCONDTYPE is 0-based + + `#156 `_: + Build with Visual Studio 14 2015: symbol name conflict + + `#158 `_: + Inconsistent forward declaration of struct/class vs definition + + `#160 `_: + Open text files with "wb" causes issues on Windows + + `#162 `_: + Reading files with "rb" causes issues in Windows + + `#165 `_: + Trailing context consumed if initial expression matches it + + `#176 `_: + re2c help message is too wide for most terminals + + `#184 `_: + Small documentation issue + + `#186 `_: + Difference operator sometimes doesn't work with utf-8 + - Merged pull requests: - #131 "Use bash-specific '[[' builtin" - #136 "Added basic support for travis-ci.org integration" - #171 "Typo fix" - #172 "Grammar fixes in the docs" - #173 "Grammar fixes in the manpage" - #174 "more documentation fixes" - #175 "more manpage fixes" - #177 "sync --help output w/ manpage" - #178 "Moves rts used in the manpage to master" - #179 "compose manpage out of rsts from gh-pages-gen" - #189 "Typo fix and small grammatical change" - #191 "Makefile.am: create target directory before writing into it" - -Version 0.16 (2016-01-21) -------------------------- -- Fixed bug #127 "code generation error with wide chars and bitmaps (omitted 'goto' statement)" -- Added DFA minimization and option '--dfa-minimization ' -- Fixed bug #128 "very slow DFA construction (resulting in a very large DFA)" -- Fixed bug #132 "test failure on big endian archs with 0.15.3" -Version 0.15.3 (2015-12-02) ---------------------------- + + `#131 `_: + Use bash-specific ``[[`` builtin + + `#136 `_: + Added basic support for travis-ci.org integration + + `#171 `_: + Typo fix + + `#172 `_: + Grammar fixes in the docs + + `#173 `_: + Grammar fixes in the manpage + + `#174 `_: + more documentation fixes + + `#175 `_: + more manpage fixes + + `#177 `_: + sync --help output w/ manpage + + `#178 `_: + Moves rts used in the manpage to master + + `#179 `_: + compose manpage out of rsts from gh-pages-gen + + `#189 `_: + Typo fix and small grammatical change + + `#191 `_: + Makefile.am: create target directory before writing into it + + +----- +0.16x +----- + +0.16 (2016-01-21) +~~~~~~~~~~~~~~~~~ + +- Fixed bug `#127 `_: + code generation error with wide chars and bitmaps (omitted ``goto`` statement) +- Added DFA minimization and option ``--dfa-minimization
`` +- Fixed bug `#128 `_: + very slow DFA construction (resulting in a very large DFA) +- Fixed bug `#132 `_: + test failure on big endian archs with 0.15.3 + + +----- +0.15x +----- + +0.15.3 (2015-12-02) +~~~~~~~~~~~~~~~~~~~ + - Fixed bugs and applied patches: - #122 "clang does not compile re2c 0.15.x" (reported and fixed by Oleksii Taran). - #124 "Get rid of UINT32_MAX and friends" (patch by Sergei Trofimovich, fixes FreeBSD builds). - #125 "[OS X] git reports changes not staged for commit in newly cloned repository" (by Oleksii Taran, this fix also applies to Windows). -- Added option --no-version that allows to omit version information. -- Reduced memory and time consumed with -Wundefined-control-flow. -- Improved coverage of input data generated with -S --skeleton. - -Version 0.15.2 (2015-11-23) ---------------------------- -- Fixed build system: lexer depends on bison-generated parser + + + `#122 `_: + clang does not compile re2c 0.15.x + + `#124 `_: + Get rid of UINT32_MAX and friends + + `#125 `_: + [OS X] git reports changes not staged for commit in newly cloned repository + +- Added option ``--no-version`` that allows to omit version information. +- Reduced memory and time consumed with ``-Wundefined-control-flow``. +- Improved coverage of input data generated with ``-S --skeleton``. + + +0.15.2 (2015-11-23) +~~~~~~~~~~~~~~~~~~~ + +- Fixed build system: lexer depends on bison-generated header (Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=566620) -Version 0.15.1 (2015-11-22) ---------------------------- + +0.15.1 (2015-11-22) +~~~~~~~~~~~~~~~~~~~ + - Fixed test failures caused by locale-sensitive 'sort'. -Version 0.15 (2015-11-22) -------------------------- + +0.15 (2015-11-22) +~~~~~~~~~~~~~~~~~ + - Updated website http://re2c.org: - added examples - updated docs - added news - added web feed (Atom 1.0) + + + added examples + + updated docs + + added news + + added web feed (Atom 1.0) + - Added options: - -S, --skeleton - --empty-class + + + ``-S, --skeleton`` + + ``--empty-class `` + - Added warnings: - -W - -Werror - -W - -Wno- - -Werror- - -Wno-error- -- Added individual warnings: - -Wundefined-control-flow - -Wunreachable-rules - -Wcondition-order - -Wuseless-escape - -Wempty-character-class - -Wswapped-range - -Wmatch-empty-string + + + ``-W`` + + ``-Werror`` + + ``-W`` + + ``-Wno-`` + + ``-Werror-`` + + ``-Wno-error-`` + +- Added specific warnings: + + + ``-Wundefined-control-flow`` + + ``-Wunreachable-rules`` + + ``-Wcondition-order`` + + ``-Wuseless-escape`` + + ``-Wempty-character-class`` + + ``-Wswapped-range`` + + ``-Wmatch-empty-string`` + - Fixed options: - -- (interpret remaining arguments as non-options) + + + ``--`` (interpret remaining arguments as non-options) + - Deprecated options: - -1 --single-pass (single pass is by default now) -- Reduced size of the generated .dot files. + + + ``-1 --single-pass`` (single pass is the default now) + +- Reduced size of the generated ``.dot`` files. + - Fixed bugs: - #27 re2c crashes reading files containing %{ %} (patch by Rui) - #51 default rule doesn't work in reuse mode - #52 eliminate multiple passes - #59 bogus yyaccept in -c mode - #60 redundant use of YYMARKER - #61 empty character class [] matches empty string - #115 flex-style named definitions cause ambiguity in re2c grammar - #119 -f with -b/-g generates incorrect dispatch on fill labels - #116 empty string with non-empty trailing context consumes code units + + + `#27 `_: + re2c crashes reading files containing ``%{ %}`` (patch by Rui) + + `#51 `_: + default rule doesn't work in reuse mode + + `#52 `_: + eliminate multiple passes + + `#59 `_: + bogus ``yyaccept`` in ``-c`` mode + + `#60 `_: + redundant use of ``YYMARKER`` + + `#61 `_: + empty character class ``[]`` matches empty string + + `#115 `_: + flex-style named definitions cause ambiguity in re2c grammar + + `#119 `_: + ``-f`` with ``-b``/``-g`` generates incorrect dispatch on fill labels + + `#116 `_: + empty string with non-empty trailing context consumes code units + - Added test options: - -j, -j (run tests in N threads, defaults to the number of CPUs) - --wine (test windows builds using wine) - --skeleton (generate skeleton programs, compile and execute them) - --keep-tmp-files (don't delete intermediate files for successful tests) + + + ``-j``, ``-j `` (run tests in ``N`` threads, defaults to the number of CPUs) + + ``--wine`` (test windows builds using ``wine``) + + ``--skeleton`` (generate skeleton programs, compile and execute them) + + ``--keep-tmp-files`` (don't delete intermediate files for successful tests) + - Updated build system: - support out of source builds - support `make distcheck` - added `make bootstrap` (rebuild re2c after building with precomplied .re files) - added `make tests` (run tests with -j) - added `make vtests` (run tests with --valgrind -j) - added `make wtests` (run tests with --wine -j 1) - added Autoconf tests for CXXFLAGS. By default try the following options: - -W -Wall -Wextra -Weffc++ -pedantic -Wformat=2 -Wredundant-decls - -Wsuggest-attribute=format -Wconversion -Wsign-conversion -O2 -Weverything), - respect user-defined CXXFLAGS - support Mingw builds: `configure -host i686-w64-mingw32` - structured source files - removed old MSVC files -- Moved development to github (https://github.com/skvadrik/re2c), keep a mirror on sourceforge. - -Version 0.14.3 (2015-05-20) ------------------------------ -- applied patch '#27 re2c crashes reading files containing %{ %}' by Rui + + + support out of source builds + + support ```make distcheck``` + + added ```make bootstrap``` (rebuild re2c after building with precompiled + ``.re`` files) + + added ```make tests``` (run tests with ``-j``) + + added ```make vtests``` (run tests with ``--valgrind -j``) + + added ```make wtests``` (run tests with ``--wine -j 1``) + + added Autoconf tests for ``CXXFLAGS``. By default try the following options: + ``-W -Wall -Wextra -Weffc++ -pedantic -Wformat=2 -Wredundant-decls + -Wsuggest-attribute=format -Wconversion -Wsign-conversion -O2 -Weverything``), + respect user-defined ``CXXFLAGS`` + + support Mingw builds: ```configure -host i686-w64-mingw32``` + + structured source files + + removed old MSVC files + +- Moved development to github (https://github.com/skvadrik/re2c), + keep a mirror on sourceforge. + + +----- +0.14x +----- + +0.14.3 (2015-05-20) +~~~~~~~~~~~~~~~~~~~ + +- applied patch `#27 `_: + re2c crashes reading files containing %{ %} - dropped distfiles for MSVC (they are broken anyway) -Version 0.14.2 (2015-03-25) ------------------------------ -- fixed #57 Wrong result only if another rule is present +0.14.2 (2015-03-25) +~~~~~~~~~~~~~~~~~~~ + +- fixed `#57 `_: + Wrong result only if another rule is present -Version 0.14.1 (2015-02-27) ------------------------------ -- fixed #55 re2c-0.14: re2c -V outputs null byte +0.14.1 (2015-02-27) +~~~~~~~~~~~~~~~~~~~ -Version 0.14 (2015-02-23) ------------------------------ -- Added generic input API 21 (#21 Support to configure how re2c code interfaced with the symbol buffer?) -- fixed #46 re2c generates an infinite loop, depends on existence of previous parser -- fixed #47 Dot output label escaped characters +- fixed `#55 `_: + re2c-0.14: re2c -V outputs null byte -Version 0.13.7.5 (2014-08-22) ------------------------------ -- Fixed Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=518904 (PHP lexer) +0.14 (2015-02-23) +~~~~~~~~~~~~~~~~~ -Version 0.13.7.4 (2014-07-29) ------------------------------ -- Enabled 'make docs' only if configured with '--enable-docs' +- Added generic input API + + + `#21 `_: + Support to configure how re2c code interfaced with the symbol buffer?" + +- fixed `#46 `_: + re2c generates an infinite loop, depends on existence of previous parser +- fixed `#47 `_: + Dot output label escaped characters + + +----- +0.13x +----- + +0.13.7.5 (2014-08-22) +~~~~~~~~~~~~~~~~~~~~~ + +- Fixed `Gentoo bug with PHP lexer `_ + +0.13.7.4 (2014-07-29) +~~~~~~~~~~~~~~~~~~~~~ + +- Enabled ``make docs`` only if configured with ``--enable-docs`` - Disallowed to use yacc/byacc instead of bison to build parser - Removed non-portable sed feature in script that runs tests -Version 0.13.7.3 (2014-07-28) ------------------------------ +0.13.7.3 (2014-07-27) +~~~~~~~~~~~~~~~~~~~~~ + - Fixed CXX warning - Got rid of asciidoc build-time dependency -Version 0.13.7.2 (2014-07-27) ------------------------------ +0.13.7.2 (2014-07-27) +~~~~~~~~~~~~~~~~~~~~~ + - Included man page into dist, respect users CXXFLAGS. -Version 0.13.7.1 (2014-07-26) ------------------------------ +0.13.7.1 (2014-07-26) +~~~~~~~~~~~~~~~~~~~~~ + - Added missing files to tarball -Version 0.13.7 (2014-07-25) ---------------------------- +0.13.7 (2014-07-25) +~~~~~~~~~~~~~~~~~~~ + - Added UTF-8 support - Added UTF-16 support - Added default rule - Added option to control ill-formed Unicode -Version 0.13.6 (2013-07-04) ---------------------------- +0.13.6 (2013-07-04) +~~~~~~~~~~~~~~~~~~~ + - Fixed #2535084 uint problem with Sun C 5.8 -- #3308400: allow Yacc-style %{code brackets}% -- #2506253: allow C++ // comments -- Fixed inplace configuration in -e mode. +- #3308400: allow Yacc-style ``%{`` code brackets ``}%`` +- #2506253: allow C++ ``//`` comments +- Fixed inplace configuration in ``-e`` mode. - Applied #2482572 Typos in error messages. -- Applied #2482561 Error in manual section on -r mode. -- Fixed #2478216 Wrong start_label in -c mode. -- Fixed #2186718 Unescaped backslash in file name of #line directive. +- Applied #2482561 Error in manual section on ``-r`` mode. +- Fixed #2478216 Wrong ``start_label`` in ``-c`` mode. +- Fixed #2186718 Unescaped backslash in file name of ``#line`` directive. - Fixed #2102138 Duplicate case labels on EBCDIC. - Fixed #2088583 Compile problem on AIX. - Fixed #2038610 Ebcdic problem. -- improve dot support: make char intervals (e.g. [A-Z]) instead of one edge per char +- improve dot support: make char intervals (e.g. ``[A-Z]``) instead of one edge + per char + +0.13.5 (2008-05-25) +~~~~~~~~~~~~~~~~~~~ -Version 0.13.5 (2008-05-25) ---------------------------- -- Fixed #1952896 Segfault in re2c::Scanner::scan. +- Fixed #1952896 Segfault in ``re2c::Scanner::scan``. - Fixed #1952842 Regression. -Version 0.13.4 (2008-04-05) ---------------------------- -- Added transparent handling of #line directives in input files. -- Added re2c:yyfill:check inplace configuration. -- Added re2c:define:YYSETSTATE:naked inplace configuration. -- Added re2c:flags:w and re2c:flags:u inplace configurations. -- Added the ability to add rules in 'use:re2c' blocks. -- Changed -r flag to accept only 'rules:re2c' and 'use:re2c' blocks. - -Version 0.13.3 (2008-03-14) ---------------------------- -- Added -r flag to allow reuse of scanner definitions. -- Added -F flag to support flex syntax in rules. +0.13.4 (2008-04-05) +~~~~~~~~~~~~~~~~~~~ + +- Added transparent handling of ``#line`` directives in input files. +- Added ``re2c:yyfill:check`` inplace configuration. +- Added ``re2c:define:YYSETSTATE:naked`` inplace configuration. +- Added ``re2c:flags:w`` and ``re2c:flags:u`` inplace configurations. +- Added the ability to add rules in ``use:re2c`` blocks. +- Changed ``-r`` flag to accept only ``rules:re2c`` and ``use:re2c`` blocks. + +0.13.3 (2008-03-14) +~~~~~~~~~~~~~~~~~~~ + +- Added ``-r`` flag to allow reuse of scanner definitions. +- Added ``-F`` flag to support flex syntax in rules. - Fixed SEGV in scanner that occurs with very large blocks. -- Fixed issue with unused yybm. +- Fixed issue with unused ``yybm``. - Partial support for flex syntax. -- Changed to allow /* comments with -c switch. -- Added flag -D/--emit-dot. - -Version 0.13.2 (2008-02-14) ---------------------------- -- Added flag --case-inverted. -- Added flag --case-insensitive. -- Added support for '' to enable rule setup. -- Added support for '=>' style rules. -- Added support for ':=' style rules. -- Added support for ':=>' style rules. -- Added re2c:cond:divider and re2c:con:goto inplace configuration. -- Fixed code generation to emit space after 'if'. - -Version 0.13.1 (2007-08-24) ---------------------------- -- Added custom build rules for Visual Studio 2005 (re2c.rules). (William Swanson) +- Changed to allow ``/*`` comments with ``-c`` switch. +- Added flag ``-D/--emit-dot``. + +0.13.2 (2008-02-14) +~~~~~~~~~~~~~~~~~~~ + +- Added flag ``--case-inverted``. +- Added flag ``--case-insensitive``. +- Added support for ```` to enable rule setup. +- Added support for ``=>`` style rules. +- Added support for ``:=`` style rules. +- Added support for ``:=>`` style rules. +- Added ``re2c:cond:divider`` and ``re2c:cond:goto`` inplace configuration. +- Fixed code generation to emit space after ``if``. + +0.13.1 (2007-08-24) +~~~~~~~~~~~~~~~~~~~ + +- Added custom build rules for Visual Studio 2005 (``re2c.rules``). + (William Swanson) - Fixed issue with some compilers. - Fixed #1776177 Build on AIX. -- Fixed #1743180 fwrite with 0 length crashes on OS X. +- Fixed #1743180 ``fwrite`` with 0 length crashes on OS X. -Version 0.13.0 (2007-06-24) ---------------------------- -- Added -c and -t to generate scanners with (f)lex-like condition support. +0.13.0 (2007-06-24) +~~~~~~~~~~~~~~~~~~~ + +- Added ``-c`` and ``-t`` to generate scanners with (f)lex-like condition + support. - Fixed issue with short form of switches and parameter if not first switch. -- Fixed #1708378 segfault in actions.cc. +- Fixed #1708378 segfault ``in actions.cc``. + + +----- +0.12x +----- + +0.12.3 (2007-08-24) +~~~~~~~~~~~~~~~~~~~ -Version 0.12.3 (2007-08-24) ---------------------------- - Fixed issue with some compilers. - Fixed #1776177 Build on AIX. -- Fixed #1743180 fwrite with 0 length crashes on OS X. +- Fixed #1743180 ``fwrite`` with 0 length crashes on OS X. + +0.12.2 (2007-06-26) +~~~~~~~~~~~~~~~~~~~ + +- Fixed #1743180 ``fwrite`` with 0 length crashes on OS X. -Version 0.12.2 (2007-06-26) ---------------------------- -- Fixed #1743180 fwrite with 0 length crashes on OS X. +0.12.1 (2007-05-23) +~~~~~~~~~~~~~~~~~~~ -Version 0.12.1 (2007-05-23) ---------------------------- -- Fixed #1711240 problem with '"' and 7F on EBCDIC plattforms. +- Fixed #1711240 problem with ``"`` and ``7F`` on EBCDIC plattforms. + +0.12.0 (2007-05-01) +~~~~~~~~~~~~~~~~~~~ -Version 0.12.0 (2007-05-01) ---------------------------- - Re-release of 0.11.3 as new stable branch. - Fixed issue with short form of switches and parameter if not first switch. -- Fixed #1708378 segfault in actions.cc. +- Fixed #1708378 segfault in ``actions.cc``. +- re2c 0.12.0 has been tested with the following compilers: + + + gcc version 4.1.2 (Gentoo 4.1.2) + + gcc version 4.1.2 20070302 (prerelease) (4.1.2-1mdv2007.1) + + gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) + + gcc version 4.1.1 20070105 (Red Hat 4.1.1-51) + + gcc version 4.1.0 (SUSE Linux 10) + + gcc version 4.0.3 (4.0.3-0.20060215.2mdk for Mandriva Linux release 2006.1) + + gcc version 4.0.2 20050901 (prerelease) (SUSE Linux) (32 + 64 bit) + + MacPPC, gcc version 4.0.1 (Apple Computer, Inc. build 5367) + + MacIntel, gcc version 4.0.1 (Apple Computer, Inc. build 5250) + + gcc version 3.4.4 [FreeBSD] 20050518 (32 + 64 bit) + + gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125) + + gcc version 3.4.2 [FreeBSD] + + gcc version 3.3.5 20050117 (prerelease) (SUSE Linux) + + gcc version 3.3.3 (PPC, 32 + 64 bit) + + Microsoft (R) C/C++ Optimizing Compiler Version 14.00.50727.762 for x64 (64 bit) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86 (Microsoft Visual C++ 2005) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86 (Mictosoft Visual C++ 2003) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9466 for 80x86 (Microsoft Visual C++ 2002) + + Intel(R) C++ Compiler for 32-bit applications, Version 9.1 Build 20070322Z Package ID: W_CC_C_9.1.037 + + Intel(R) C++ Compiler for Intel(R) EM64T-based applications, Version 9.1 (64 bit) + + icpcbin (ICC) 9.1 20070215 + + CC: Sun C++ 5.8 2005/10/13 (``CXXFLAGS='-library=stlport4'``) + + MIPSpro Compilers: Version 7.4.4m (32 + 64 bit) + + aCC: HP C/aC++ B3910B A.06.15 [Mar 28 2007] (HP-UX IA64) + + +----- +0.11x +----- + +0.11.3 (2007-04-01) +~~~~~~~~~~~~~~~~~~~ -Version 0.11.3 (2007-04-01) ---------------------------- - Added support for underscores in named definitions. -- Added new option --no-generation-date. +- Added new option ``--no-generation-date``. - Fixed issue with long form of switches. -Version 0.11.2 (2007-03-01) ---------------------------- -- Added inplace configuration 're2c:yyfill:parameter'. -- Added inplace configuration 're2c:yych:conversion'. -- Fixed -u switch code generation. -- Added ability to avoid defines and overwrite variable and label names. +0.11.2 (2007-03-01) +~~~~~~~~~~~~~~~~~~~ + +- Added inplace configuration ``re2c:yyfill:parameter``. +- Added inplace configuration ``re2c:yych:conversion``. +- Fixed ``-u`` switch code generation. +- Added ability to avoid defines and overwrite generated variable names. + +0.11.1 (2007-02-20) +~~~~~~~~~~~~~~~~~~~ + +- Applied #1647875 Add ``const`` to ``yybm`` vector. + +0.11.0 (2007-01-01) +~~~~~~~~~~~~~~~~~~~ -Version 0.11.1 (2007-02-20) ---------------------------- -- Applied #1647875 add const to yybm vector. +- Added ``-u`` switch to support unicode. -Version 0.11.0 (2007-01-01) ---------------------------- -- Added -u switch to support unicode. -Version 0.10.8 (2007-04-01) ---------------------------- +----- +0.10x +----- + +0.10.8 (2007-04-01) +~~~~~~~~~~~~~~~~~~~ + - Fixed issue with long form of switches. -Version 0.10.7 (2007-02-20) ---------------------------- -- Applied #1647875 add const to yybm vector. +0.10.7 (2007-02-20) +~~~~~~~~~~~~~~~~~~~ + +- Applied #1647875 Add ``const`` to ``yybm`` vector. + +0.10.6 (2006-08-05) +~~~~~~~~~~~~~~~~~~~ -Version 0.10.6 (2006-08-05) ---------------------------- - Fixed #1529351 Segv bug on unterminated code blocks. - Fixed #1528269 Invalid code generation. -Version 0.10.5 (2006-06-11) ---------------------------- -- Fixed long form of -1 switch to --single-pass as noted in man page and help. +0.10.5 (2006-06-11) +~~~~~~~~~~~~~~~~~~~ + +- Fixed long form of ``-1`` switch to ``--single-pass`` as noted in man page + and help. - Added MSVC 2003 project files and renamed old 2002 ones. -Version 0.10.4 (2006-06-01) ---------------------------- +0.10.4 (2006-06-01) +~~~~~~~~~~~~~~~~~~~ + - Fix whitespace in generated code. -Version 0.10.3 (2006-05-14) ---------------------------- -- Fixed issue with -wb and -ws. -- Added -g switch to support gcc's computed goto's. -- Changed to use nested if's instead of "switch(yyaccept)" in -s mode. - -Version 0.10.2 (2006-05-01) ---------------------------- -- Changed to generate YYMARKER only when needed or in single pass mode. -- Added -1 switch to force single pass generation and make two pass the default. -- Fixed -i switch. -- Added configuration 'yyfill:enable' to allow suppression of YYFILL() blocks. +0.10.3 (2006-05-14) +~~~~~~~~~~~~~~~~~~~ + +- Fixed issue with ``-wb`` and ``-ws``. +- Added ``-g`` switch to support gcc's computed goto's. +- Changed to use nested ``if``'s instead of ``switch(yyaccept)`` in ``-s`` mode. + +0.10.2 (2006-05-01) +~~~~~~~~~~~~~~~~~~~ + +- Changed to generate ``YYMARKER`` only when needed or in single pass mode. +- Added ``-1`` switch to force single pass generation and make two pass the + default. +- Fixed ``-i`` switch. +- Added configuration ``yyfill:enable`` to allow suppression of ``YYFILL()`` + blocks. - Added tutorial like lessons to re2c. -- Added /*!ignore:re2c */ to support documenting of re2c source. -- Fixed issue with multiline re2c comments (/*!max:re2c ... */ and alike). -- Fixed generation of YYDEBUG() when using -d switch. -- Added /*!getstate:re2c */ which triggers generation of the YYGETSTATE() block. -- Added configuration 'state:abort'. -- Changed to not generate yyNext unless configuration 'state:nextlabel' is used. -- Changed to not generate yyaccept code unless needed. -- Changed to use if- instead of switch-expression when yyaccpt has only one case. -- Added docu, examples and tests to .src.zip package (0.10.1 zip was repackaged). -- Fixed #1479044 incorrect code generated when using -b. +- Added ``/*!ignore:re2c */`` to support documenting of re2c source. +- Fixed issue with multiline re2c comments (``/*!max:re2c ... */`` and alike). +- Fixed generation of ``YYDEBUG()`` when using ``-d`` switch. +- Added ``/*!getstate:re2c */`` which triggers generation of the + ``YYGETSTATE()`` block. +- Added configuration ``state:abort``. +- Changed to not generate ``yyNext`` unless configuration ``state:nextlabel`` is + used. +- Changed to not generate ``yyaccept`` code unless needed. +- Changed to use ``if`` instead of ``switch`` expression when ``yyaccpt`` has + only one case. +- Added docu, examples and tests to ``.src.zip`` package (0.10.1 zip was + repackaged). +- Fixed #1479044 incorrect code generated when using ``-b``. - Fixed #1472770 re2c creates an infinite loop. - Fixed #1454253 Piece of code saving a backtracking point not generated. - Fixed #1463639 Missing forward declaration. - Implemented #1187127 savable state support for multiple re2c blocks. +- re2c 0.10.2 has been tested with the following compilers: + + + gcc (GCC) 4.1.0 (Gentoo 4.1.0) + + gcc version 4.0.3 (4.0.3-0.20060215.2mdk for Mandriva Linux release 2006.1) + + gcc version 4.0.2 20050901 (prerelease) (SUSE Linux) + + gcc (GCC) 3.4.5 (Gentoo 3.4.5, ssp-3.4.5-1.0, pie-8.7.9) + + gcc version 3.4.4 [FreeBSD] 20050518 + + gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125) + + gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3) + + gcc-Version 3.3.5 (Debian 1:3.3.5-13) + + gcc-Version 3.3.0 (mips-sgi-irix6.5/3.3.0/specs) + + MIPSpro Compilers: Version 7.4.4m + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for + 80x86 (Microsoft Visual C++ 2005) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86 + (Mictosoft Visual C++ 2003) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9466 for 80x86 + (Microsoft Visual C++ 2002) + + Intel(R) C++ Compiler for Intel(R) EM64T-based applications, Version 9.0 + Build 20050430 Package ID: l_cc_p_9.0.021 + + CC: Sun C++ 5.8 2005/10/13 (``CXXFLAGS='-library=stlport4'``) + + bison 2.1, 1.875d, 1.875b, 1.875 + +0.10.1 (2006-02-28) +~~~~~~~~~~~~~~~~~~~ -Version 0.10.1 (2006-02-28) ---------------------------- - Added support for Solaris and native SUN compiler. -- Applied #1438160 expose YYCTXMARKER. +- Applied #1438160 expose ``YYCTXMARKER``. +- re2c 0.10.1 has been tested with the following compilers: + + + gcc version 4.0.3 (4.0.3-0.20060215.2mdk for Mandriva Linux release 2006.1) + + gcc version 4.0.2 (4.0.2-1mdk for Mandriva Linux release 2006.1) + + gcc version 4.0.2 20050901 (prerelease) (SUSE Linux) + + gcc version 3.4.4 (cygming special) (gdc 0.12, using dmd 0.125) + + gcc-Version 3.3.5 (Debian 1:3.3.5-13) + + gcc-Version 3.3.0 (mips-sgi-irix6.5/3.3.0/specs) + + MIPSpro Compilers: Version 7.4.4m + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for + 80x86 (Microsoft Visual C 2005) + + Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.00.9466 for 80x86 + (Microsoft Visual C 2002) + + Intel(R) C++ Compiler for 32-bit applications, Version 9.0 Build 20051130Z + Package ID: W_CC_C_9.0.028 + + CC: Sun C++ 5.8 2005/10/13 (``CXXFLAGS='-compat5 -library=stlport4'``) + + bison 2.1, 1.875d, 1.875b, 1.875 -Version 0.10.0 (2006-02-18) ---------------------------- -- Added make target zip to create windows source packages as zip files. -- Added re2c:startlabel configuration. +0.10.0 (2006-02-18) +~~~~~~~~~~~~~~~~~~~ + +- Added make target ``zip`` to create windows source packages as zip files. +- Added ``re2c:startlabel`` configuration. - Fixed code generation to not generate unreachable code for initial state. -- Added support for c/c++ compatible \u and \U unicode notation. +- Added support for c/c++ compatible ``\u`` and ``\U`` unicode notation. - Added ability to control indendation. -- Made scanner error out in case an ambiguous /* is found. +- Made scanner error out in case an ambiguous ``/*`` is found. - Fixed indendation of generated code. - Added support for DOS line endings. - Added experimental unicode support. -- Added config_w32.h to build out of the box on windows (using msvc 2002+). +- Added ``config_w32.h`` to build out of the box on windows (using msvc 2002+). - Added Microsoft Visual C .NET 2005 build files. - Applied #1411087 variable length trailing context. -- Applied #1408326 do not generate goto next state. -- Applied #1408282 CharSet initialization fix. -- Applied #1408278 readsome with MSVC. +- Applied #1408326 do not generate ``goto`` next state. +- Applied #1408282 ``CharSet`` initialization fix. +- Applied #1408278 ``readsome`` with MSVC. - Applied #1307467 Unicode patch for 0.9.7. -Version 0.9.12 (2005-12-28) ---------------------------- -- Fixed bug #1390174 re2c cannot accept {0,}. -Version 0.9.11 (2005-12-18) ---------------------------- -- Fixed #1313083 -e (EBCDIC cross compile) broken. -- Fixed #1297658 underestimation of n in YYFILL(n). +---- +0.9x +---- + +0.9.12 (2005-12-28) +~~~~~~~~~~~~~~~~~~~ + +- Fixed bug #1390174 re2c cannot accept ``{0,}``. + +0.9.11 (2005-12-18) +~~~~~~~~~~~~~~~~~~~ + +- Fixed #1313083 ``-e`` (EBCDIC cross compile) broken. +- Fixed #1297658 underestimation of ``n`` in ``YYFILL(n)``. - Applied #1339483 Avoid rebuilds of re2c when running subtargets. - Implemented #1335305 symbol table reimplementation, just slightly modifed. -Version 0.9.10 (2005-09-04) ---------------------------- -- Added -i switch to avoid generating #line information. -- Fixed bug #1251653 re2c generate some invalid #line on WIN32. +0.9.10 (2005-09-04) +~~~~~~~~~~~~~~~~~~~ + +- Add ``-i`` switch to avoid generating ``#line`` information. +- Fixed bug #1251653 re2c generate some invalid ``#line`` on WIN32. -Version 0.9.9 (2005-07-21) --------------------------- -- Implemented #1232777 negated char classes '[^...]' and the dot operator '.'. +0.9.9 (2005-07-21) +~~~~~~~~~~~~~~~~~~~ + +- Implemented #1232777 negated char classes ``[^...]`` and the dot operator ``.``. - Added hexadecimal character definitions. - Added consistency check for octal character definitions. -Version 0.9.8 (2005-06-26) --------------------------- -- Fixed code generation for -b switch. +0.9.8 (2005-06-26) +~~~~~~~~~~~~~~~~~~~ + +- Fixed code generation for ``-b`` switch. - Added Microsoft Visual C .NET build files. -Version 0.9.7 (2005-04-30) --------------------------- +0.9.7 (2005-04-30) +~~~~~~~~~~~~~~~~~~~ + - Applied #1181535 storable state patch. -- Added -d flag which outputs a debugable parser. -- Fixed generation of '#line' directives (according to ISO-C99). +- Added ``-d`` flag which outputs a debugable parser. +- Fixed generation of ``#line`` directives (according to ISO-C99). - Fixed bug #1187785 Re2c fails to generate valid code. -- Fixed bug #1187452 unused variable `yyaccept'. +- Fixed bug #1187452 unused variable ``yyaccept``. -Version 0.9.6 (2005-04-14) --------------------------- -- Fixed build with gcc >= 3.4. +0.9.6 (2005-04-14) +~~~~~~~~~~~~~~~~~~~ -Version 0.9.5 (2005-04-08) --------------------------- -- Added /*!max:re2c */ which emits a '#define YYMAXFILL \n' line - This allows to define buffers of the minimum required length. Occurence - must follow '/*re2c */ and cannot preceed it. +- Fix build with gcc >= 3.4. + +0.9.5 (2005-04-08) +~~~~~~~~~~~~~~~~~~~ + +- Added ``/*!max:re2c */`` which emits ``#define YYMAXFILL `` + line. This allows to define buffers of the minimum required length. + Occurence must follow ``/*re2c */`` and cannot preceed it. - Changed re2c to two pass generation to output warning free code. - Fixed bug #1163046 re2c hangs when processing valid re-file. - Fixed bug #1022799 re2c scanner has buffering bug. -Version 0.9.4 (2005-03-12) --------------------------- -- Added --vernum support. -- Fixed bug #1054496 incorrect code generated with -b option. -- Fixed bug #1012748 re2c does not emit last line if '\n' missing. -- Fixed bug #999104 --output=output option does not work as documented. -- Fixed bug #999103 Invalid options prefixed with two dashes cause program crash. - -Version 0.9.3 (2004-05-26) --------------------------- -- Fixes one small possible bug in the generated output. ych instead of yych is - output in certain circumstances - -Version 0.9.2 (2004-05-26) --------------------------- -- Added -o option to specify the output file which also will set the #line - directives to something useful. -- Print version to cout instead cerr. -- Added -h and -- style options. -- Moved development to http://sourceforge.net/projects/re2c . +0.9.4 (2005-03-12) +~~~~~~~~~~~~~~~~~~~ + +- Added ``--vernum`` support. +- Fixed bug #1054496 incorrect code generated with ``-b`` option. +- Fixed bug #1012748 re2c does not emit last line if ``\n`` missing. +- Fixed bug #999104 ``--output=output`` option does not work as documented. +- Fixed bug #999103 Invalid options prefixed with two dashes cause program + crash. + +0.9.3 (2004-05-26) +~~~~~~~~~~~~~~~~~~~ + +- Fixes one small possible bug in the generated output. ``ych`` instead of + ``yych`` is output in certain circumstances. + +0.9.2 (2004-05-26) +~~~~~~~~~~~~~~~~~~~ + +- Added ``-o`` option to specify the output file which also will set the + ``#line`` directives to something useful. +- Print version to ``cout`` instead of ``cerr``. +- Added ``-h`` and ``--`` style options. +- Moved development to http://sourceforge.net/projects/re2c - Fixed bug #960144 minor cosmetic problem. - Fixed bug #953181 cannot compile with. - Fixed bug #939277 Windows support. - Fixed bug #914462 automake build patch -- Fixed bug #891940 braced quantifiers: {\d+(,|,\d+)?} style. +- Fixed bug #891940 braced quantifiers: ``{\d+(,|,\d+)?}`` style. - Fixed bug #869298 Add case insensitive string literals. -- Fixed bug #869297 Input buffer overrun. +- Fixed bug #869297 Input buffer overrun. + +0.9.1 (2003-12-13) +~~~~~~~~~~~~~~~~~~~ -Version 0.9.1 (2003-12-13) --------------------------- - Removed rcs comments in source files. -Version 0.9 ------------ -- Redistribution based on version 0.5. -- Added parentheses to assignment expressions in 'if' statements. -- Rearranged class members to match initialization order. -- Substr fix. -- Use array delete [] when necessary. -- Other minor fixes for subduing compiler warnings. +------------------------- +re2c adopted (2003-12-09) +------------------------- + +- Version 0.9.1 README:: + + Originally written by Peter Bumbulis (peter@csg.uwaterloo.ca) + Currently maintained by Brian Young (bayoung@acm.org) + + The re2c distribution can be found at: + http://www.tildeslash.org/re2c/index.html + + The source distribution is available from: + http://www.tildeslash.org/re2c/re2c-0.9.1.tar.gz + + This distribution is a cleaned up version of the 0.5 release + maintained by me (Brian Young). Several bugs were fixed as well + as code cleanup for warning free compilation. It has been + developed and tested with egcs 1.0.2 and gcc 2.7.2.3 on Linux x86. + Peter Bumbulis' original release can be found at: + ftp://csg.uwaterloo.ca/pub/peter/re2c.0.5.tar.gz + + re2c is a great tool for writing fast and flexible lexers. + It has served many people well for many years and it deserves + to be maintained more actively. re2c is on the order of 2-3 + times faster than a flex based scanner, and its input model + is much more flexible. + + Patches and requests for features will be entertained. Areas + of particular interest to me are porting (a Solaris and an NT + version will be forthcoming) and wide character support. Note + that the code is already quite portable and should be buildable + on any platform with minor makefile changes. + +- Version 0.5 Peter's original ANNOUNCE and README:: + + re2c is a tool for generating C-based recognizers from regular + expressions. re2c-based scanners are efficient: for programming + languages, given similar specifications, an re2c-based scanner + is typically almost twice as fast as a flex-based scanner with + little or no increase in size (possibly a decrease on cisc + architectures). Indeed, re2c-based scanners are quite competitive + with hand-crafted ones. + + Unlike flex, re2c does not generate complete scanners: the user + must supply some interface code. While this code is not bulky + (about 50-100 lines for a flex-like scanner; see the man page + and examples in the distribution) careful coding is required for + efficiency (and correctness). One advantage of this arrangement + is that the generated code is not tied to any particular input + model. For example, re2c generated code can be used to scan + data from a null-byte terminated buffer as illustrated below. + + Given the following source: + + #define NULL ((char*) 0) + char *scan(char *p) { + char *q; + #define YYCTYPE char + #define YYCURSOR p + #define YYLIMIT p + #define YYMARKER q + #define YYFILL(n) + /*!re2c + [0-9]+ {return YYCURSOR;} + [\000-\377] {return NULL;} + */ + } + + re2c will generate: + + /* Generated by re2c on Sat Apr 16 11:40:58 1994 */ + #line 1 "simple.re" + #define NULL ((char*) 0) + char *scan(char *p) { + char *q; + #define YYCTYPE char + #define YYCURSOR p + #define YYLIMIT p + #define YYMARKER q + #define YYFILL(n) + { + YYCTYPE yych; + unsigned int yyaccept; + goto yy0; + yy1: ++YYCURSOR; + yy0: + if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); + yych = *YYCURSOR; + if(yych <= '/') goto yy4; + if(yych >= ':') goto yy4; + yy2: yych = *++YYCURSOR; + goto yy7; + yy3: + #line 10 + {return YYCURSOR;} + yy4: yych = *++YYCURSOR; + yy5: + #line 11 + {return NULL;} + yy6: ++YYCURSOR; + if(YYLIMIT == YYCURSOR) YYFILL(1); + yych = *YYCURSOR; + yy7: if(yych <= '/') goto yy3; + if(yych <= '9') goto yy6; + goto yy3; + } + #line 12 + + } + + Note that most compilers will perform dead-code elimination to + remove all YYCURSOR, YYLIMIT comparisions. + + re2c was developed for a particular project (constructing a fast + REXX scanner of all things!) and so while it has some rough edges, + it should be quite usable. More information about re2c can be + found in the (admittedly skimpy) man page; the algorithms and + heuristics used are described in an upcoming LOPLAS article + (included in the distribution). Probably the best way to find out + more about re2c is to try the supplied examples. re2c is written in + C++, and is currently being developed under Linux using gcc 2.5.8. + Peter -- 2.40.0