ragel(1)

NAME

rlcodegen - code generator for Ragel State Machine Compil
er

SYNOPSIS

rlcodegen [options] file

DESCRIPTION

Note: this is the backend component of Ragel. This program
accepts a machine compiled by the frontend program ragel(1) and
generates either code or a graphviz dot file.

OPTIONS

-h, -H, -?, --help
Display help and exit.
-o file
Write output to file. If -o is not given, a default
file name is chosen by replacing the suffix of the input. For
source files ending in .rh the suffix .h is used. For all other
source files a suffix based on the output language is used (.c,
.cpp, .m, .dot)
-V Generate a Graphviz dotfile instead of code. By de
fault this option writes the dotfile to standard output. The
frontend options -M and -S can be used to specify a subset of the
grammar to write.
-p Print printable characters in Graphviz output.
-T0 Generate a table driven FSM. This is the default
code style. The table driven FSM represents the state machine as
static data. There are tables of states, transitions, indicies
and actions. The current state is stored in a variable. The exe
cution is a loop that looks that given the current state and cur
rent character to process looks up the transition to take using a
binary search, executes any actions and moves to the target
state. In general, the table driven FSM produces a smaller binary
and requires a less expensive host language compile but results
in slower running code. The table driven FSM is suitable for any
FSM.
-T1 Generate a faster table driven FSM by expanding ac
tion lists in the action execute code.
-F0 Generate a flat table driven FSM. Transitions are
represented as an array indexed by the current alphabet charac
ter. This eliminates the need for a binary search to locate tran
sitions and produces faster code, however it is only suitable for
small alphabets.
-F1 Generate a faster flat table driven FSM by expand
ing action lists in the action execute code.
-G0 Generate a goto driven FSM. The goto driven FSM
represents the state machine as a series of goto statements.
While in the machine, the current state is stored by the proces
sor's instruction pointer. The execution is a flat function where
control is passed from state to state using gotos. In general,
the goto FSM produces faster code but results in a larger binary
and a more expensive host language compile.
-G1 Generate a faster goto driven FSM by expanding ac
tion lists in the action execute code.
-G2 Generate a really fast goto driven FSM by embedding
action lists in the state machine control code.

BUGS

Ragel is still under development and has not yet matured.
There are probably many bugs.

CREDITS

Ragel was written by Adrian Thurston <thurston@cs.queen
su.ca>. Objective-C output contributed by Eric Ocean. D output
contributed by Alan West.

SEE ALSO

ragel(1), re2c(1), flex(1)

Homepage: http://www.cs.queensu.ca/home/thurston/ragel/
Ragel 5.14 October 2006
Copyright © 2010-2025 Platon Technologies, s.r.o.           Index | Man stránky | tLDP | Dokumenty | Utilitky | O projekte
Design by styleshout