RE/Flex & Bison

The RE/Flex and Bison tools are modern tools but have antecedents,

RE/Flex is based on Lex:

The original paper on Lex:

Lesk, M. E. and E. Schmidt [1975].

Lex: A Lexical Analyzer Generator. Computing Science Technical Report No. 39, Bell Laboratories, Murray Hill, New Jersey.

Bison is based on Yacc, here is the original Yacc paper:
Johnson, Stephen C. [1975].

Yacc: Yet Another Compiler Compiler. Computing Science Technical Report No. 32, Bell Laboratories, Murray hill, New Jersey.

Bison documentation:

The Bison documentation,


RE/Flex is a C++ library that serves as a replacement for the popular Flex lexer generator.

It provides similar functionalities to Flex, with the added benefits of being written in C++, which results in improved performance and advanced features.

Key features:
  • Generation of deterministic and non-deterministic finite automata

  • Support for Unicode, wide characters, and multiple character sets

Compatibility with Flex:

RE-FLEX is compatible with the input and output formats used by Flex, allowing for easy migration of existing Flex-based projects to RE-FLEX.

RE-FLEX offers a more powerful and flexible alternative to Flex, while still maintaining compatibility with its input and output formats.

This allows developers to take advantage of RE-FLEX’s improved performance and advanced features, while still being able to work with familiar formats and tools.

Reflex documentation:

RE/Flex documentation is available for browsing.

How to start with Lex and Yacc:

These introductory guides can help beginners:

Thomas Niemann.

A Compact Guide to Lex & Yacc. An introduction to Lex and Yacc.

Collective Work

Programming with GNU Software. Contains information about Autoconf, Automake, Gperf, Flex, Bison, and GCC.