Merged contents of rlgen-cd.1.in into ragel.1.in.
authorthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Wed, 18 Mar 2009 02:39:58 +0000 (02:39 +0000)
committerthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Wed, 18 Mar 2009 02:39:58 +0000 (02:39 +0000)
git-svn-id: http://svn.complang.org/ragel/trunk@743 052ea7fc-9027-0410-9066-f65837a77df0

doc/ragel.1.in

index 371456f..dc7334b 100644 (file)
@@ -60,9 +60,9 @@ Print version information 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)
+replacing the file extenstion of the input file. 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, etc.).
 .TP
 .B \-s
 Print some statistics on standard error.
@@ -93,7 +93,8 @@ are minimized once at the end. This is the default minimization option.
 Minimize after every operation.
 .TP
 .B \-x
-Run the frontend only: emit XML intermediate format.
+Compile the state machines and emit an XML representation of the host data and
+the machines.
 .TP
 .B \-V
 Generate a dot file for Graphviz.
@@ -102,10 +103,10 @@ Generate a dot file for Graphviz.
 Display printable characters on labels.
 .TP
 .B \-S <spec>
-FSM specification to output
+FSM specification to output.
 .TP
 .B \-M <machine>
-Machine definition/instantiation to output 
+Machine definition/instantiation to output.
 .TP
 .B \-C
 The host language is C, C++, Obj-C or Obj-C++. This is the default host language option.
@@ -123,25 +124,45 @@ The host language is Ruby.
 Inhibit writing of #line directives.
 .TP
 .B \-T0
-Table driven FSM (default).
+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
-Faster table driven FSM.
+Generate a faster table driven FSM by expanding action lists in the action
+execute code.
 .TP
 .B \-F0
-Flat table driven FSM.
+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
-Faster flat table-driven FSM.
+Generate a faster flat table driven FSM by expanding action lists in the action
+execute code.
 .TP
 .B \-G0
-Goto-driven FSM.
+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
-Faster goto-driven FSM.
+Generate a faster goto driven FSM by expanding action lists in the action
+execute code.
 .TP
 .B \-G2
-Really fast goto-driven FSM.
+Generate a really fast goto driven FSM by embedding action lists in the state
+machine control code.
 .TP
 .B \-P<N>
 N-Way Split really fast goto-driven FSM.
@@ -621,17 +642,13 @@ Return to the target state of the transition on which the last fcall was made.
 .TP
 .I fbreak;
 Save the current state and immediately break out of the machine.
-.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@complang.org>.  Objective-C
-output contributed by Erich Ocean. D output contributed by Alan West. 
+output contributed by Erich Ocean. D output contributed by Alan West. Ruby
+output contributed by Victor Hugo Borja. C Sharp code generation contributed by
+Daniel Tang.
 .SH "SEE ALSO"
-.BR rlgen-cd (1),
-.BR rlgen-dot (1),
-.BR rlgen-java (1),
 .BR re2c (1),
 .BR flex (1)
 
-Homepage: http://www.cs.queensu.ca/~thurston/ragel/
+Homepage: http://www.complang.org/ragel/