Ragel
Ragel: Compact State Machine Compiler
Write state machines with ease and generate efficient C/C++ code for runtime execution
What is Ragel?
Ragel (Rosetta Automated Generator of Embedded Languages) is an open-source computer software for the creation of parsers, lexers, pattern matchers and other programs that process structured input data. It uses a state machine to recognize regular languages, similar to lexical analyzers and parsers generated by other parser generators.
Some key features of Ragel include:
- The language used to write state machines is compact and readable due to the use of regular expression syntax.
- It generates deterministic finite automatons (DFA) rather than nondeterministic ones.
- The generated state machines run directly on the input stream without extra buffering which makes them fast.
- It can emit code in multiple languages including C, C++, Objective-C, D, Java and Ruby.
- The generated code is reentrant and thread-safe by default.
- Ragel can generate Visual Studio solution and project files for C++ code.
Ragel makes it easy to embed state machine based parsers, tokenizers and other programs into host applications. The state machines perform quickly as they run directly on the input stream without extra buffering. Ragel is useful for recognizing patterns, lexing program code, machine processing, data conversion and validation, protocol state machines and more.
Ragel Features
Features
- Compiles state machines defined using a DSL to C/C++ code
- Supports finite state machines, lexical analyzers, pattern matchers
- Performs optimizations like state collapsing and table compression
- Integrates with common build systems like Make, Autoconf, etc.
Pricing
- Open Source
Pros
Cons
Official Links
Reviews & Ratings
Login to ReviewThe Best Ragel Alternatives
View all Ragel alternatives with detailed comparison →
Top Development and Compilers & Interpreters and other similar apps like Ragel
ANTLR
Owl parser generator