Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
*~
*.swp

16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,22 @@ file formats, network protocols or bitstreams.
patterns. Generates an efficient stream based reader and writer for the
runtime execution.

#### Generators suitable for resource-constrained embedded systems (low-end microcontrollers with few Kb of RAM)

- [ragel](http://www.colm.net/open-source/ragel/) (embedded C, C++, Java, Go, Ruby, C#):
Ragel compiles executable finite state machines from regular languages.
Ragel state machines can not only recognize byte sequences as regular
expression machines do, but can also *execute code at arbitrary points
while the recognition process goes*. The key feature is a very compact
and human-readable *embedded C* code does not consume any buffers
and don't use external libraries. Has *FSM plotting for code documentation*.
- [re2c](http://re2c.org) (embedded C):
re2c is a free and open-source lexer generator for C and C++.
Its main goal is generating fast and compact embeddable lexers.
Instead of using traditional table-driven approach, re2c encodes the
generated finite state automata directly in the form of conditional
jumps and comparisons. Generated code does not use OS/libc buffering and I/O.

### Stand-alone software

##### Hex editors with grammars
Expand Down