]> granicus.if.org Git - re2c/log
re2c
4 years agoChanged the decsription of tags in docs to avoid ambiguity. master
Ulya Trofimovich [Fri, 11 Oct 2019 06:42:50 +0000 (07:42 +0100)]
Changed the decsription of tags in docs to avoid ambiguity.

Thanks to Des-Nerger for pointing out in bug #140.

4 years agoAdded ninja lexers to tests.
Ulya Trofimovich [Sun, 1 Sep 2019 09:03:48 +0000 (10:03 +0100)]
Added ninja lexers to tests.

Note: ninja_lexer.ib.c differs from the original lexer in the ninja project,
because the latter was generated with re2c-0.16, which used slightly
different constructs for complex expressions:

Re2c-0.16 used generated something like this:

    ++YYCURSOR;
    if (yych = *YYCURSOR) ...

And the latest re2c generates something like this:

    yych = *++YYCYRSOR;
    if (yych) ...

The difference is insignificant.

4 years agoMoved tests into subdirectories and deleted some of the largest skeleton tests.
Ulya Trofimovich [Sun, 1 Sep 2019 09:01:44 +0000 (10:01 +0100)]
Moved tests into subdirectories and deleted some of the largest skeleton tests.

4 years agolibre2c: added prefix 'TOKEN_' to all parser tokens to avoid name collisions.
Ulya Trofimovich [Thu, 29 Aug 2019 21:27:01 +0000 (22:27 +0100)]
libre2c: added prefix 'TOKEN_' to all parser tokens to avoid name collisions.

Apparently some versions of bison generate token definitions as macros, not
as enum members. If a bison-generated header is included into another file
that contains identifiers identical to the names of parser tokens, all such
identifiers are macro-substituted to a numeric constant. Adding a prefix to
token names reduces the chances of name collision.

This fixes bug #261: "lib/parse.h:49:15: 错误:expected unqualified-id before
numeric constant" reported by qidizi.

4 years agoFixed documentation regarding '...:naked' configurations.
Ulya Trofimovich [Wed, 28 Aug 2019 22:42:01 +0000 (23:42 +0100)]
Fixed documentation regarding '...:naked' configurations.

4 years agoRespect 're2c:define:YYFILL:naked' and 're2c:yyfill:parameter' configurations with...
Ulya Trofimovich [Wed, 28 Aug 2019 21:43:03 +0000 (22:43 +0100)]
Respect 're2c:define:YYFILL:naked' and 're2c:yyfill:parameter' configurations with EOF rule.

Thanks to Nazim Can Bedir for the bug report.

4 years agoUpdated documentation for the new 're2c:sentinel' configuration.
Ulya Trofimovich [Sun, 25 Aug 2019 09:53:59 +0000 (10:53 +0100)]
Updated documentation for the new 're2c:sentinel' configuration.

4 years agoAdded some tests for 're2c:sentinel' configuration.
Ulya Trofimovich [Sun, 25 Aug 2019 09:41:58 +0000 (10:41 +0100)]
Added some tests for 're2c:sentinel' configuration.

4 years agoAdded -Wsentinel-in-midrule warning and 're2c:sentinel' configurations.
Ulya Trofimovich [Sat, 24 Aug 2019 23:53:16 +0000 (00:53 +0100)]
Added -Wsentinel-in-midrule warning and 're2c:sentinel' configurations.

The new analysis is meant to detect potential reads past the end of buffer
resulting from erroneous rules that allow sentinel symbol to occur in the
middle of lexeme. The analysis is only activated in cases bounds checking
is disabled with 're2c:yyfill:enable = 0;' and EOF rule is not used.

For example:

    ['] [^']* [']   { ... }

This may be a naive way to match single-quoted strings; it would crash the
lexer on input like "'aaa\0" (without the closing single quote).

4 years agoGot rid of PACKAGE_DATE variable altogether (it was used only in the manpage).
Ulya Trofimovich [Sat, 17 Aug 2019 20:34:03 +0000 (21:34 +0100)]
Got rid of PACKAGE_DATE variable altogether (it was used only in the manpage).

4 years agoMerge pull request #258 from lamby/934697-re2c-please-make-the-build-reproducible
Ulya Trofimovich [Wed, 14 Aug 2019 06:18:18 +0000 (07:18 +0100)]
Merge pull request #258 from lamby/934697-re2c-please-make-the-build-reproducible

Make the build reproducible

4 years agoMake the build reproducible 258/head
Chris Lamb [Tue, 13 Aug 2019 20:52:26 +0000 (13:52 -0700)]
Make the build reproducible

Whilst working on the Reproducible Builds effort [0] we noticed
that re2c could not be built reproducibly.

This is because it used the current build date in the manual page and was
originally filed in Debian as #934697 [1].

This patch uses the SOURCE_DATE_EPOCH [2] environment variable.

 [0] https://reproducible-builds.org/
 [1] https://bugs.debian.org/934697
 [2] https://reproducible-builds.org/specs/source-date-epoch/

Signed-off-by: Chris Lamb <lamby@debian.org>
4 years agoMerge pull request #256 from certik/license
Ulya Trofimovich [Tue, 13 Aug 2019 05:54:05 +0000 (06:54 +0100)]
Merge pull request #256 from certik/license

Package LICENSE file in the release tarball

4 years agoUpdated bootstrap manpage.
Ulya Trofimovich [Tue, 13 Aug 2019 05:49:26 +0000 (06:49 +0100)]
Updated bootstrap manpage.

4 years agoMerge pull request #255 from jcfp/master
Ulya Trofimovich [Tue, 13 Aug 2019 05:47:32 +0000 (06:47 +0100)]
Merge pull request #255 from jcfp/master

fix documentation typos

4 years agoPackage LICENSE file in the release tarball 256/head
Ondřej Čertík [Tue, 13 Aug 2019 04:26:40 +0000 (22:26 -0600)]
Package LICENSE file in the release tarball

This is important when re2c is packaged in distributions, so that one can
quickly check what license the re2c is distributed under. Distributions
typically use the release tarball, not the git repository, and so this commit
puts the LICENSE file into the release tarball also.

4 years agofix documentation typos 255/head
jcfp [Mon, 12 Aug 2019 10:41:10 +0000 (12:41 +0200)]
fix documentation typos

4 years agoRelease 1.2.1. 1.2.1
Ulya Trofimovich [Sun, 11 Aug 2019 08:38:33 +0000 (09:38 +0100)]
Release 1.2.1.

4 years agoUpdated CHANGELOG.
Ulya Trofimovich [Sun, 11 Aug 2019 08:17:33 +0000 (09:17 +0100)]
Updated CHANGELOG.

4 years agoInstall standard library files in $(datadir)/re2c/stdlib and search for include files...
Ulya Trofimovich [Wed, 7 Aug 2019 22:10:26 +0000 (23:10 +0100)]
Install standard library files in $(datadir)/re2c/stdlib and search for include files in this location.

This fixes bug #253 "re2c should install unicode_categories.re somewhere"
(reported by Wesley W. Terpstra).

4 years agoAllow to reset 're2c:eof' configuration.
Ulya Trofimovich [Mon, 5 Aug 2019 22:33:10 +0000 (23:33 +0100)]
Allow to reset 're2c:eof' configuration.

The ability to reset this configuration is necessary in order to be able to
mix re2c blocks that use EOF rule and blocks that don't.

This fixes bug #254: "Turn off re2c:eof".

4 years agoRelease 1.2. 1.2
Ulya Trofimovich [Fri, 2 Aug 2019 11:36:08 +0000 (12:36 +0100)]
Release 1.2.

4 years agoUpdated release script.
Ulya Trofimovich [Fri, 2 Aug 2019 11:35:55 +0000 (12:35 +0100)]
Updated release script.

4 years agoAdded include/ subdirectory to distribution and updated bootsrap files.
Ulya Trofimovich [Fri, 2 Aug 2019 09:51:06 +0000 (10:51 +0100)]
Added include/ subdirectory to distribution and updated bootsrap files.

4 years agoFixed release date in CHANGELOG.
Ulya Trofimovich [Fri, 2 Aug 2019 09:26:46 +0000 (10:26 +0100)]
Fixed release date in CHANGELOG.

4 years agoRe-applied manpage updates (accidentally reverted by previous commits).
Ulya Trofimovich [Thu, 1 Aug 2019 22:47:00 +0000 (23:47 +0100)]
Re-applied manpage updates (accidentally reverted by previous commits).

4 years agoUpdated CHANGELOG (converted to RST format to be in sync with gh-pages-gen branch).
Ulya Trofimovich [Thu, 1 Aug 2019 12:52:01 +0000 (13:52 +0100)]
Updated CHANGELOG (converted to RST format to be in sync with gh-pages-gen branch).

4 years agoUpdated manpage.
Ulya Trofimovich [Mon, 29 Jul 2019 08:03:29 +0000 (09:03 +0100)]
Updated manpage.

4 years agoRegenerated bootstrap files (some files were not updated after include-what-you-use...
Ulya Trofimovich [Fri, 26 Jul 2019 10:33:28 +0000 (11:33 +0100)]
Regenerated bootstrap files (some files were not updated after include-what-you-use fixes).

4 years agoPaper: cleaned up source files (mostly removed unused files).
Ulya Trofimovich [Fri, 26 Jul 2019 09:31:20 +0000 (10:31 +0100)]
Paper: cleaned up source files (mostly removed unused files).

Touched the following papers:
- 1994 paper "RE2C: a More Versatile Parser Generator"
- 2017 paper "Tagged Deterministic Finite Automata with Lookahead" (after arXiv publication)
- 2019 paper "Efficient POSIX Submatch Extraction on NFA"

All .pdf and .ps files have been moved to gh-pages-gen branch.

4 years agoFixed code generation for EOF rule with '-f --storable-state' option.
Ulya Trofimovich [Thu, 25 Jul 2019 08:21:20 +0000 (09:21 +0100)]
Fixed code generation for EOF rule with '-f --storable-state' option.

4 years agoPaper: added acknowledgements and adjusted formatting.
Ulya Trofimovich [Tue, 23 Jul 2019 21:14:21 +0000 (22:14 +0100)]
Paper: added acknowledgements and adjusted formatting.

4 years agoPaper: use pgfplots instead of gnuplot to render benchmark results.
Ulya Trofimovich [Tue, 23 Jul 2019 16:10:55 +0000 (17:10 +0100)]
Paper: use pgfplots instead of gnuplot to render benchmark results.

4 years agoPaper: taken care of Angelo's remarks (mostly grammar fixes).
Ulya Trofimovich [Tue, 23 Jul 2019 11:11:58 +0000 (12:11 +0100)]
Paper: taken care of Angelo's remarks (mostly grammar fixes).

4 years agoDon't generate 'YYFILL' calls when EOF rule is used with 're2c:yyfill:enable = 0...
Ulya Trofimovich [Thu, 18 Jul 2019 16:26:27 +0000 (17:26 +0100)]
Don't generate 'YYFILL' calls when EOF rule is used with 're2c:yyfill:enable = 0;' configuration.

Note: in the non-EOF-rule case 're2c:yyfill:enable = 0;' results in suppression
of the whole 'YYLIMIT' check together with 'YYFILL' call. In case of EOF rule,
however, we are not bound by backward compatibility and can do a more logical
thing.

4 years agoFixed the case of missing default label which is used only by EOF checks.
Ulya Trofimovich [Thu, 18 Jul 2019 16:16:04 +0000 (17:16 +0100)]
Fixed the case of missing default label which is used only by EOF checks.

The current fix may sometimes cause generation of unused default label, because
at the time when it's generated we haven't geerated the code for EOF checks yet
and do nt know if default label is really needed. This is what happens in the
updated test cases.

4 years agoOmit unnecessary 'else' when generating code for EOF checks.
Ulya Trofimovich [Thu, 18 Jul 2019 16:04:05 +0000 (17:04 +0100)]
Omit unnecessary 'else' when generating code for EOF checks.

4 years agoRenamed misleadingly named parameter.
Ulya Trofimovich [Thu, 18 Jul 2019 15:56:47 +0000 (16:56 +0100)]
Renamed misleadingly named parameter.

4 years agoUpdated CHANGELOG.
Ulya Trofimovich [Wed, 17 Jul 2019 22:43:25 +0000 (23:43 +0100)]
Updated CHANGELOG.

4 years agoUpdated documentation for new options and directives.
Ulya Trofimovich [Wed, 17 Jul 2019 22:40:51 +0000 (23:40 +0100)]
Updated documentation for new options and directives.

4 years agoMoved include file with definitions of Unicode categories to 'include/' subdirectory.
Ulya Trofimovich [Mon, 15 Jul 2019 14:56:29 +0000 (15:56 +0100)]
Moved include file with definitions of Unicode categories to 'include/' subdirectory.

4 years agoUse cast to 'void' instead of attribute 'unused', otherwise we get -Wused-but-marked...
Ulya Trofimovich [Sat, 13 Jul 2019 23:01:35 +0000 (00:01 +0100)]
Use cast to 'void' instead of attribute 'unused', otherwise we get -Wused-but-marked-unused in debug mode.

4 years agoAdded a few casts to 'printf' args to silence warnings caused by different type width...
Ulya Trofimovich [Sat, 13 Jul 2019 22:41:30 +0000 (23:41 +0100)]
Added a few casts to 'printf' args to silence warnings caused by different type width in 32/64 modes.

4 years agolibre2c test: always run Cox algorithm and skip expected failures.
Ulya Trofimovich [Sat, 13 Jul 2019 21:54:59 +0000 (22:54 +0100)]
libre2c test: always run Cox algorithm and skip expected failures.

4 years agoCosmetic: shortened macro name a bit and removed 'GXX' as it is also relevant to...
Ulya Trofimovich [Sat, 13 Jul 2019 18:09:00 +0000 (19:09 +0100)]
Cosmetic: shortened macro name a bit and removed 'GXX' as it is also relevant to Clang.

4 years agoMarked a few debug variables as unused to avoid warnings in release builds.
Ulya Trofimovich [Sat, 13 Jul 2019 18:00:12 +0000 (19:00 +0100)]
Marked a few debug variables as unused to avoid warnings in release builds.

4 years agoMakefile.am: added forgotten 'AM_V_GEN' prefix to a couple of build rules.
Ulya Trofimovich [Sat, 13 Jul 2019 17:45:48 +0000 (18:45 +0100)]
Makefile.am: added forgotten 'AM_V_GEN' prefix to a couple of build rules.

4 years agoDisable ceratain warnings on bison-generated output (we have no control over it).
Ulya Trofimovich [Sat, 13 Jul 2019 17:36:03 +0000 (18:36 +0100)]
Disable ceratain warnings on bison-generated output (we have no control over it).

4 years agoFixed Clang warning -Wshift-sign-overflow.
Ulya Trofimovich [Sat, 13 Jul 2019 10:42:37 +0000 (11:42 +0100)]
Fixed Clang warning -Wshift-sign-overflow.

4 years agoFixed Clang warning -Wexit-time-destructors.
Ulya Trofimovich [Sat, 13 Jul 2019 10:39:52 +0000 (11:39 +0100)]
Fixed Clang warning -Wexit-time-destructors.

4 years agoFixed Clang warning -Wconditional-uninitialized.
Ulya Trofimovich [Sat, 13 Jul 2019 10:37:11 +0000 (11:37 +0100)]
Fixed Clang warning -Wconditional-uninitialized.

4 years agoFixed Clang warning -Wmissing-variable-declarations.
Ulya Trofimovich [Sat, 13 Jul 2019 10:34:34 +0000 (11:34 +0100)]
Fixed Clang warning -Wmissing-variable-declarations.

4 years agoFixed Clang warning -Wunused-template.
Ulya Trofimovich [Sat, 13 Jul 2019 10:32:04 +0000 (11:32 +0100)]
Fixed Clang warning -Wunused-template.

4 years agoFixed Clang warning -Wunreachable-code (these were real serious errors).
Ulya Trofimovich [Sat, 13 Jul 2019 10:25:25 +0000 (11:25 +0100)]
Fixed Clang warning -Wunreachable-code (these were real serious errors).

4 years agoFixed Clang warning -Wunreachable-code-return.
Ulya Trofimovich [Sat, 13 Jul 2019 10:23:29 +0000 (11:23 +0100)]
Fixed Clang warning -Wunreachable-code-return.

4 years agoFixed Clang warning -Wmissing-prototypes.
Ulya Trofimovich [Sat, 13 Jul 2019 10:20:38 +0000 (11:20 +0100)]
Fixed Clang warning -Wmissing-prototypes.

4 years agoFixed Clang warning -Wc++11-extensions.
Ulya Trofimovich [Sat, 13 Jul 2019 10:16:21 +0000 (11:16 +0100)]
Fixed Clang warning -Wc++11-extensions.

4 years agoFixed Clang warning -Wmismatched-tags.
Ulya Trofimovich [Sat, 13 Jul 2019 10:13:18 +0000 (11:13 +0100)]
Fixed Clang warning -Wmismatched-tags.

4 years agoFixed Clang warnings -Wswitch-enum and -Wcovered-switch-default.
Ulya Trofimovich [Sat, 13 Jul 2019 10:09:39 +0000 (11:09 +0100)]
Fixed Clang warnings -Wswitch-enum and -Wcovered-switch-default.

4 years agoFixed Clang warning -Wshadow.
Ulya Trofimovich [Sat, 13 Jul 2019 10:03:13 +0000 (11:03 +0100)]
Fixed Clang warning -Wshadow.

4 years agoFixed Clang warnings -Wextra-semi and -Wextra-semi-stmt.
Ulya Trofimovich [Sat, 13 Jul 2019 09:49:09 +0000 (10:49 +0100)]
Fixed Clang warnings -Wextra-semi and -Wextra-semi-stmt.

4 years agoconfigure.ac: silenced a few Clang warnings (too noisy, not very helpful).
Ulya Trofimovich [Sat, 13 Jul 2019 09:37:36 +0000 (10:37 +0100)]
configure.ac: silenced a few Clang warnings (too noisy, not very helpful).

4 years agoFixed test (added forgotten qualification after moving functions into 're2c' namespace).
Ulya Trofimovich [Fri, 12 Jul 2019 13:57:38 +0000 (14:57 +0100)]
Fixed test (added forgotten qualification after moving functions into 're2c' namespace).

4 years agoAdded build script that checks that all headers are self-contained.
Ulya Trofimovich [Fri, 12 Jul 2019 13:11:20 +0000 (14:11 +0100)]
Added build script that checks that all headers are self-contained.

4 years agoFixed includes using include-what-you-use.
Ulya Trofimovich [Fri, 12 Jul 2019 12:35:40 +0000 (13:35 +0100)]
Fixed includes using include-what-you-use.

4 years agoAdded build script for include-what-you-use.
Ulya Trofimovich [Fri, 12 Jul 2019 10:40:43 +0000 (11:40 +0100)]
Added build script for include-what-you-use.

4 years agoUpdated Mingw build scripts to workaround libtool/slibtool issues.
Ulya Trofimovich [Thu, 11 Jul 2019 18:12:04 +0000 (19:12 +0100)]
Updated Mingw build scripts to workaround libtool/slibtool issues.

Currently we need both libtool and slibtool:

  - libtool fails to link self-contained DLL (it ignores '-static-libstdc++
    -static-libgcc'), but manages to link EXEs with static library

  - slibtool manages to link self-contained DLL, but then fails to link the
    final EXEs with it (it passes '-lre2c' before some other predefined object
    file that contains definitions from libgcc)

4 years agorun_tests.sh: check for re2c existence after (possibly) appending .exe extension.
Ulya Trofimovich [Thu, 11 Jul 2019 11:28:44 +0000 (12:28 +0100)]
run_tests.sh: check for re2c existence after (possibly) appending .exe extension.

4 years agoBuild scripts: changed -j5 to -j$(nproc).
Ulya Trofimovich [Thu, 11 Jul 2019 10:34:59 +0000 (11:34 +0100)]
Build scripts: changed -j5 to -j$(nproc).

4 years agoPaper: fixed broken references.
Ulya Trofimovich [Wed, 10 Jul 2019 18:03:19 +0000 (19:03 +0100)]
Paper: fixed broken references.

4 years agoPaper: references and spell-checking.
Ulya Trofimovich [Wed, 10 Jul 2019 10:07:07 +0000 (11:07 +0100)]
Paper: references and spell-checking.

4 years agoPaper: updated and fixed all the proofs.
Ulya Trofimovich [Mon, 8 Jul 2019 10:55:34 +0000 (11:55 +0100)]
Paper: updated and fixed all the proofs.

4 years agoPaper: reworked "Benchmarks" section, added "Conclusions and future work" section.
Ulya Trofimovich [Wed, 26 Jun 2019 10:20:14 +0000 (11:20 +0100)]
Paper: reworked "Benchmarks" section, added "Conclusions and future work" section.

4 years agolibre2c: don't forget to free static lists (AST nodes, etc.) at the end of 'regfree()'.
Ulya Trofimovich [Wed, 26 Jun 2019 10:15:40 +0000 (11:15 +0100)]
libre2c: don't forget to free static lists (AST nodes, etc.) at the end of 'regfree()'.

Otherwise they accumulate at every 'regcomp()'.

4 years agolibre2c: clean up cache after matching in lazy algorithms; small tweaks in benchmark.
Ulya Trofimovich [Wed, 26 Jun 2019 07:56:44 +0000 (08:56 +0100)]
libre2c: clean up cache after matching in lazy algorithms; small tweaks in benchmark.

Cleaning up cache may take considerable time (e.g. if cache is a large
std::map), which should be included in the match time.

4 years agoAdded 'clear()' method to slab allocator.
Ulya Trofimovich [Tue, 25 Jun 2019 21:57:24 +0000 (22:57 +0100)]
Added 'clear()' method to slab allocator.

4 years agoPaper: removed nested negative tags from TNFA and added complexity analysis.
Ulya Trofimovich [Sat, 22 Jun 2019 21:27:15 +0000 (22:27 +0100)]
Paper: removed nested negative tags from TNFA and added complexity analysis.

4 years agolibre2c: don't add nested negative tags to TNFA, as it increases its size and makes...
Ulya Trofimovich [Fri, 21 Jun 2019 13:51:26 +0000 (14:51 +0100)]
libre2c: don't add nested negative tags to TNFA, as it increases its size and makes matching slower.

Instead, add only one negative tag (top-level closing one) and record
the remaining tags in its metadata. Use this metadata to update nested
negative tags during TNFA simulation.

4 years agolibre2c benchmark: make a couple of warmup iterations before the main run.
Ulya Trofimovich [Mon, 17 Jun 2019 19:46:48 +0000 (20:46 +0100)]
libre2c benchmark: make a couple of warmup iterations before the main run.

4 years agoPaper: added "Benchmarks" section.
Ulya Trofimovich [Mon, 17 Jun 2019 09:29:58 +0000 (10:29 +0100)]
Paper: added "Benchmarks" section.

4 years agolibre2c benchmark: print size of each regular expression and the number of capturing...
Ulya Trofimovich [Mon, 17 Jun 2019 09:27:07 +0000 (10:27 +0100)]
libre2c benchmark: print size of each regular expression and the number of capturing groups in it.

4 years agolibre2c: removed unused variable.
Ulya Trofimovich [Thu, 13 Jun 2019 15:49:02 +0000 (16:49 +0100)]
libre2c: removed unused variable.

4 years agoMakefile.am: added 'bench_libre2c' to noinst_PROGRAMS (so that automake picks it...
Ulya Trofimovich [Thu, 13 Jun 2019 15:43:36 +0000 (16:43 +0100)]
Makefile.am: added 'bench_libre2c' to noinst_PROGRAMS (so that automake picks it as a target).

4 years agoPaper: added section about lazy disambiguation.
Ulya Trofimovich [Wed, 12 Jun 2019 22:45:46 +0000 (23:45 +0100)]
Paper: added section about lazy disambiguation.

4 years agoAdded a test for '--input-encoding utf8' option.
Ulya Trofimovich [Fri, 24 May 2019 14:12:28 +0000 (15:12 +0100)]
Added a test for '--input-encoding utf8' option.

4 years agoAdded option --input-encoding <ascii | utf8> that allows to use UTF-8 literals in...
Ulya Trofimovich [Fri, 24 May 2019 12:15:07 +0000 (13:15 +0100)]
Added option --input-encoding <ascii | utf8> that allows to use UTF-8 literals in regular expressions.

4 years agoAllow to mix multiple /*!rules:re2c*/, /*!use:re2c*/ and /*!re2c*/ blocks in -r mode.
Ulya Trofimovich [Fri, 24 May 2019 11:04:47 +0000 (12:04 +0100)]
Allow to mix multiple /*!rules:re2c*/, /*!use:re2c*/ and /*!re2c*/ blocks in -r mode.

4 years agolibre2c: added GOR1 option for lazy disambiguation algorithm.
Ulya Trofimovich [Sat, 18 May 2019 18:07:57 +0000 (19:07 +0100)]
libre2c: added GOR1 option for lazy disambiguation algorithm.

4 years agolibre2c: do not include benchmark in 'make check' programs.
Ulya Trofimovich [Thu, 9 May 2019 21:38:12 +0000 (22:38 +0100)]
libre2c: do not include benchmark in 'make check' programs.

4 years agolibre2c: added forgotten benchmark data samples.
Ulya Trofimovich [Thu, 9 May 2019 20:44:42 +0000 (21:44 +0100)]
libre2c: added forgotten benchmark data samples.

4 years agolibre2c: added missing include.
Ulya Trofimovich [Thu, 9 May 2019 20:29:53 +0000 (21:29 +0100)]
libre2c: added missing include.

4 years agolibre2c: updated benchmark.
Ulya Trofimovich [Thu, 9 May 2019 17:30:32 +0000 (18:30 +0100)]
libre2c: updated benchmark.

5 years agolibre2c: extended lexer to handle some escape sequences in charachter classes.
Ulya Trofimovich [Wed, 8 May 2019 13:31:14 +0000 (14:31 +0100)]
libre2c: extended lexer to handle some escape sequences in charachter classes.

5 years agoInlined closure cleanup in the pruning procedure to further speedup determinization.
Ulya Trofimovich [Wed, 8 May 2019 10:01:48 +0000 (11:01 +0100)]
Inlined closure cleanup in the pruning procedure to further speedup determinization.

5 years agoMake unreachable rule analysis conditional to further sppedup closure pruning.
Ulya Trofimovich [Wed, 8 May 2019 09:54:00 +0000 (10:54 +0100)]
Make unreachable rule analysis conditional to further sppedup closure pruning.

5 years agoRewrite of closure pruning function to speedup determinization on large automata.
Ulya Trofimovich [Wed, 8 May 2019 09:44:25 +0000 (10:44 +0100)]
Rewrite of closure pruning function to speedup determinization on large automata.

5 years agoHash in 4-byte chunks to speedup determinization on large automata.
Ulya Trofimovich [Wed, 8 May 2019 08:57:59 +0000 (09:57 +0100)]
Hash in 4-byte chunks to speedup determinization on large automata.

5 years agoUse correct formula to find the next aligned address.
Ulya Trofimovich [Wed, 8 May 2019 06:35:42 +0000 (07:35 +0100)]
Use correct formula to find the next aligned address.

The previous formula worked incorrectly for already aligned addresses
(it added alignment to them).

5 years agoPaper: updated "TNFA construction" section.
Ulya Trofimovich [Mon, 8 Apr 2019 12:21:50 +0000 (13:21 +0100)]
Paper: updated "TNFA construction" section.

5 years agoconfigure.ac: use AC_USE_SYSTEM_EXTENSIONS, as --std=c++98 disables POSIX extensions...
Ulya Trofimovich [Sat, 6 Apr 2019 10:16:47 +0000 (11:16 +0100)]
configure.ac: use AC_USE_SYSTEM_EXTENSIONS, as --std=c++98 disables POSIX extensions on Cygwin.

Attempted fix for #247.