Edits to chapter four.
[external/ragel.git] / doc / rlgen-ruby.1.in
1 .\"
2 .\"   Copyright 2001-2007 Adrian Thurston <thurston@cs.queensu.ca>
3 .\"
4
5 .\"   This file is part of Ragel.
6 .\"
7 .\"   Ragel is free software; you can redistribute it and/or modify
8 .\"   it under the terms of the GNU General Public License as published by
9 .\"   the Free Software Foundation; either version 2 of the License, or
10 .\"   (at your option) any later version.
11 .\"
12 .\"   Ragel is distributed in the hope that it will be useful,
13 .\"   but WITHOUT ANY WARRANTY; without even the implied warranty of
14 .\"   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 .\"   GNU General Public License for more details.
16 .\"
17 .\"   You should have received a copy of the GNU General Public License
18 .\"   along with Ragel; if not, write to the Free Software
19 .\"   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
20
21 .\"   Process this file with
22 .\"   groff -man -Tascii rlgen-ruby.1
23 .\"
24 .TH RLGEN-RUBY 1 "@PUBDATE@" "Ragel @VERSION@" "Ragel State Machine Compiler"
25 .SH NAME
26 rlgen-ruby \- code generator for Ragel State Machine Compiler
27 .SH SYNOPSIS
28 .B rlgen-ruby 
29 .RI [ options ]
30 .I file
31 .SH DESCRIPTION
32 This is a backend component of Ragel. This program accepts a machine
33 compiled by the frontend program ragel(1) and generates Ruby code.
34
35 Use it with the frontend option -R.
36 .SH OPTIONS
37 .TP
38 .BR \-h ", " \-H ", " \-? ", " \-\-help
39 Display help and exit.
40 .TP
41 .BR \-v 
42 Display version information and exit.
43 .TP
44 .B \-o " file"
45 Write output to file. If -o is not given, a default file name is chosen by
46 replacing the suffix of the input. For source files ending in .rh the suffix .h
47 is used. For all other source files a suffix based on the output language
48 is used (.c, .cpp, .m, .dot)
49 .TP
50 .B \-T0
51 Generate a table driven FSM. This is the default code style.  The table driven
52 FSM represents the state machine as static data. There are tables of states,
53 transitions, indicies and actions. The current state is stored in a variable.
54 The execution is a loop that looks that given the current state and current
55 character to process looks up the transition to take using a binary search,
56 executes any actions and moves to the target state. In general, the table
57 driven FSM produces a smaller binary and requires a less expensive host language
58 compile but results in slower running code. The table driven FSM is suitable
59 for any FSM.
60 .SH BUGS
61 Ragel is still under development and has not yet matured. There are probably
62 many bugs.
63 .SH CREDITS
64 Ragel was written by Adrian Thurston <thurston@cs.queensu.ca>.  Objective-C
65 output contributed by Erich Ocean. D output contributed by Alan West. 
66 .SH "SEE ALSO"
67 .BR ragel (1),
68 .BR rlgen-cd (1),
69 .BR rlgen-java (1),
70 .BR rlgen-dot (1),
71 .BR re2c (1),
72 .BR flex (1)
73
74 Homepage: http://www.cs.queensu.ca/~thurston/ragel/