summaryrefslogtreecommitdiff
path: root/doc/rlcodegen.1.in
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rlcodegen.1.in')
-rw-r--r--doc/rlcodegen.1.in107
1 files changed, 107 insertions, 0 deletions
diff --git a/doc/rlcodegen.1.in b/doc/rlcodegen.1.in
new file mode 100644
index 0000000..516229d
--- /dev/null
+++ b/doc/rlcodegen.1.in
@@ -0,0 +1,107 @@
+.\"
+.\" Copyright 2001 Adrian Thurston <thurston@cs.queensu.ca>
+.\"
+
+.\" This file is part of Ragel.
+.\"
+.\" Ragel is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" Ragel is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with Ragel; if not, write to the Free Software
+.\" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+.\" Process this file with
+.\" groff -man -Tascii rlcodegen.1
+.\"
+.TH RAGEL 1 "@PUBDATE@" "Ragel @VERSION@" "Ragel State Machine Compiler"
+.SH NAME
+rlcodegen \- code generator for Ragel State Machine Compiler
+.SH SYNOPSIS
+.B rlcodegen
+.RI [ options ]
+.I file
+.SH DESCRIPTION
+.B 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.
+
+.SH OPTIONS
+.TP
+.BR \-h ", " \-H ", " \-? ", " \-\-help
+Display help and exit.
+.TP
+.B \-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)
+.TP
+.B \-V
+Generate a Graphviz dotfile instead of code. By default 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.
+.TP
+.B \-p
+Print printable characters in Graphviz output.
+.TP
+.B \-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 execution is a loop that looks that given the current state and current
+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.
+.TP
+.B \-T1
+Generate a faster table driven FSM by expanding action lists in the action
+execute code.
+.TP
+.B \-F0
+Generate a flat table driven FSM. Transitions are represented as an array
+indexed by the current alphabet character. This eliminates the need for a
+binary search to locate transitions and produces faster code, however it is
+only suitable for small alphabets.
+.TP
+.B \-F1
+Generate a faster flat table driven FSM by expanding action lists in the action
+execute code.
+.TP
+.B \-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 processor'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.
+.TP
+.B \-G1
+Generate a faster goto driven FSM by expanding action lists in the action
+execute code.
+.TP
+.B \-G2
+Generate a really fast goto driven FSM by embedding action lists in the state
+machine control code.
+.SH BUGS
+Ragel is still under development and has not yet matured. There are probably
+many bugs.
+.SH CREDITS
+Ragel was written by Adrian Thurston <thurston@cs.queensu.ca>. Objective-C
+output contributed by Eric Ocean. D output contributed by Alan West.
+.SH "SEE ALSO"
+.BR ragel (1),
+.BR re2c (1),
+.BR flex (1)
+
+Homepage: http://www.cs.queensu.ca/home/thurston/ragel/