diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..70bb2a2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*~ +*.swp + diff --git a/README.md b/README.md index 32d1f7e..93bcad3 100644 --- a/README.md +++ b/README.md @@ -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