You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Ulya Trofimovich 111ee5da7b GitHub Actions: limit stack for tests to 256K. 3 weeks ago
.github/workflows GitHub Actions: limit stack for tests to 256K. 3 weeks ago
benchmarks Rename (some) structs to follow uniform type naming rules. 3 weeks ago
bootstrap Use unsigned character type in the lexers, enable -Wold-style-cast. 1 month ago
build Adjust build script for non-multilib environments. 7 months ago
cmake Use unsigned character type in the lexers, enable -Wold-style-cast. 1 month ago
doc Remove TDFA(0) algorithm. 2 months ago
examples C backend: do not emit comma after the last condition in enumeration. 6 months ago
fuzz Remove staDFA algorithm. 2 months ago
include Moved include file with definitions of Unicode categories to 'include/' subdirectory. 3 years ago
lib Rename files (related to multi-pass TDFA). 3 weeks ago
libre2c_old docs: fix simple typo, otheriwse -> otherwise 2 years ago
src Rewrite recursion into iteration for rule liveness analysis. 3 weeks ago
test Rewrite TNFA construction using iterative approach instead of recursion. 3 weeks ago
.gitignore Provide support of CMake Presets 1 year ago
.gitmodules Submatch Java benchmark: add REgen as a Git submodule. 1 year ago
.travis.yml Travis CI: use Ubuntu 20.04 (Focal Fossa) to have Python 3 by default. 1 year ago
BUILD.md Update README.md and BUILD.md. 7 months ago
CHANGELOG Update CHANGELOG. 7 months ago
CMakeLists.txt Rename files (related to multi-pass TDFA). 3 weeks ago
CMakePresets.json GitHub Actions: run Valgrind tests on CI. 1 month ago
CONTRIBUTING.md Update CONTRIBUTING.md: explain --enable-parsers / RE2C_REBUILD_PARSERS. 2 months ago
IDEAS.md Add IDEAS.md with (as the name suggests) some ideas for the future. 3 months ago
LICENSE Moved LICENSE, README, NO_WARRANTY and CHANGELOG to the root directory. 3 years ago
MAINTAINERS.md Remove TDFA(0) algorithm. 2 months ago
Makefile.am Rewrite TNFA construction using iterative approach instead of recursion. 3 weeks ago
Makefile.lib.am Rename files (related to multi-pass TDFA). 3 weeks ago
NO_WARRANTY Moved LICENSE, README, NO_WARRANTY and CHANGELOG to the root directory. 3 years ago
README.md Update README.md and BUILD.md. 7 months ago
add-release.txt Prepare release 0.15: updated release instructions. 7 years ago
autogen.sh autogen.sh: drop dangerous 'git clean -dfx' command 1 month ago
configure.ac Use unsigned character type in the lexers, enable -Wold-style-cast. 1 month ago
release.sh Fix release script to update re2c version for CMake. 2 years ago
run_tests.py.in run_tests.py.in: add --verbose flag, disable successful printing by default 6 months ago
sf-cheatsheet Added text file 'sf-cheatsheet' to make some notes about sourceforge administration. 7 years ago

README.md

DESCRIPTION

re2c is a free and open-source lexer generator for C/C++, Go and Rust.

Its main goal is generating fast lexers: at least as fast as their reasonably optimized hand-coded counterparts. Instead of using traditional table-driven approach, re2c encodes the generated finite state automata directly in the form of conditional jumps and comparisons. The resulting programs are faster and often smaller than their table-driven analogues, and they are much easier to debug and understand. re2c applies quite a few optimizations in order to speed up and compress the generated code.

Another distinctive feature is its flexible interface: instead of assuming a fixed program template, re2c lets the programmer write most of the interface code and adapt the generated lexer to any particular environment.

DOCUMENTATION

Official re2c website is re2c.org. It has a lot of examples.

DOWNLOAD

Release tarballs: https://github.com/skvadrik/re2c/releases

Source code:

$ git clone https://github.com/skvadrik/re2c.git
$ git clone https://git.code.sf.net/p/re2c/code-git

Github is the main repo, sourceforge is a mirror and can be slightly outdated.

CONTRIBUTING

re2c is an Open Source, community-driven project. See CONTRIBUTING.md for details about contributions to this repository.

BUILD

See BUILD.md or the online docs for instructions how to build re2c.

FEEDBACK

Bugtracker:

Mailing lists:

IRC channels:

  • irc.oftc.net/#re2c
  • irc.libera.chat/#re2c

You are welcome to ask for help or share your thoughts and ideas.

AUTHORS

re2c was originally written by Peter Bumbulis peter@csg.uwaterloo.ca. Since then many volunteers have contributed to the project. The current maintainer is Ulya Trofimovich skvadrik@gmail.com.