News <news/news>
-re2c is a lexer generator for C/C++.
-Its key features are:
+re2c is a free and open-source lexer generator for C and C++.
+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.
-* Very fast lexers: the generated code is as good as a carefully tuned, hand-crafted C/C++ lexer.
- This is because re2c generates minimalistic, hard-coded state machines
- (as opposed to full-featured table-based lexers).
-* Flexible API: one can `configure <manual/syntax/syntax.html#configurations>`_
- or even `completely override <manual/features/generic_api/generic_api.html>`_
- the way re2c generates code.
- Programmers can adjust their lexer to a particular input model,
- avoid unnecessary overhead (drop useless runtime checks, do in-place lexing, etc.),
- and make all sorts of hacks.
- The `examples <examples/examples.html>`_ cover many real-world cases and shed some light on the dark corners of the re2c API.
-* Efficient `Unicode support <manual/features/encodings/encodings.html>`_
- (code points are compiled into executable finite-state machines).
+Features
+--------
-* `Warnings <manual/warnings/warnings.html>`_.
+* `submatch extraction and parsing <manual/features/submatch/submatch.html>`_
+ based on the efficient `novel algorithm <2017_trofimovich_tagged_deterministic_finite_automata_with_lookahead.pdf>`_
-* `Autogenerated tests <manual/features/skeleton/skeleton.html>`_ with very good coverage.
+* `encoding support <manual/features/encodings/encodings.html>`_ for ASCII, UTF-8, UTF-16, UTF-32, UCS-2, EBCDIC
-* `License <about/about.html>`_ (public domain).
+* highly `configurable <manual/syntax/syntax.html#configurations>`_ interface
+ and `generic input API <manual/features/generic_api/generic_api.html>`_
+* `self-validation <manual/features/skeleton/skeleton.html>`_
+ and static analysis in the form of `warnings <manual/warnings/warnings.html>`_
+* ... and other `useful features <manual/features/features.html>`_
-Bugs & feedback
----------------
-Please send feedback to `re2c-devel <re2c-devel@lists.sourceforge.net>`_ and
-the `re2c-general <re2c-general@lists.sourceforge.net>`_ mailing lists
-(search `mail archives <https://sourceforge.net/p/re2c/mailman/>`_ for old threads),
-or `report a bug <https://github.com/skvadrik/re2c/issues>`_.
-
-Note that re2c is hosted on both `github <https://github.com/skvadrik/re2c>`_
-and `sourceforge <https://sourceforge.net/p/re2c>`_ for redundancy.
-Currently, github serves as the main repository, bugtracker, and hosting site for binaries.
-Sourceforge is used as a backup repository and for mail
-(so please don't send your bugreports or feedback to sourceforge).
News & updates
--------------
+* `Release 1.0.1 <news/release_notes/1_0_1.html>`_
+* `Release 1.0 <news/release_notes/1_0.html>`_
+* ... and `older news <news/news.html>`_
+
+
.. |feed| image:: feed/feed/feed.png
:target: feed/atom.xml
:class: feed
:width: 2em
-Subscribe to receive the latest news and updates: |feed|
+`Subscribe <feed/atom.xml>`_ to receive the latest news and updates: |feed|
+
+
+
+Bugs & feedback
+---------------
+
+The best place to report a bug is `on github <https://github.com/skvadrik/re2c>`_
+or in `re2c-devel <re2c-devel@lists.sourceforge.net>`_ and `re2c-general <re2c-general@lists.sourceforge.net>`_ mailing lists.
+Note that re2c is hosted on both `github <https://github.com/skvadrik/re2c>`_
+and `sourceforge <https://sourceforge.net/p/re2c>`_:
+github serves as the main repository, bugtracker, and tarball hosting;
+sourceforge is used as a backup repository and for mail.
+
+
+
+Contribute
+----------
+
+Contributions can come in various forms: bug reports, patches, pull requests, discussion.
+A very easy and valuable contribution is adding your lexer to the main re2c test suite
+(this is also a good way to make sure that re2c updated will not break your code).
+All contributions are welcome!
These are only the best-known and open source projects.
-
-Contribute
-----------
-
-Contributions come in various forms:
-
-* Tests: a very easy and valuable way of contributing is by adding your lexer to the re2c test suite.
- Real-world tests are the best.
- Feel free to strip out all non-re2c code if you must keep it secret.
- In return, re2c will not break your code (re2c developers strive to never break existing tests).
-
-* Ideas: new features and new ways to use re2c.
-
-* Development: bugfixes, features, and ports to other languages.
-
-Everyone is welcome!
-
-