From: thurston Date: Wed, 18 Mar 2009 02:39:58 +0000 (+0000) Subject: Merged contents of rlgen-cd.1.in into ragel.1.in. X-Git-Tag: 2.0_alpha~57 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c4e4fcc8b4c2bd544955ca1fe96b0f5910e6d6b2;p=external%2Fragel.git Merged contents of rlgen-cd.1.in into ragel.1.in. git-svn-id: http://svn.complang.org/ragel/trunk@743 052ea7fc-9027-0410-9066-f65837a77df0 --- diff --git a/doc/ragel.1.in b/doc/ragel.1.in index 371456f..dc7334b 100644 --- a/doc/ragel.1.in +++ b/doc/ragel.1.in @@ -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 -FSM specification to output +FSM specification to output. .TP .B \-M -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-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 . 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/