Updated description of the entering action operator. The fixbackbox.awk script
authorthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Sun, 21 Oct 2007 00:32:35 +0000 (00:32 +0000)
committerthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Sun, 21 Oct 2007 00:32:35 +0000 (00:32 +0000)
is no longer needed for genfigs.sh. The genfigs.sh script now uses ragel and
rlgen-dot from the current source tree, not the ones on the system.

git-svn-id: http://svn.complang.org/ragel/trunk@309 052ea7fc-9027-0410-9066-f65837a77df0

doc/exstact.fig
doc/genfigs.sh
doc/ragel-guide.tex

index e34e3be..8cd61cf 100644 (file)
@@ -1,62 +1,73 @@
 #FIG 3.2
+# Generated by Graphviz version 2.12 (Tue Sep  4 16:56:48 UTC 2007)
+# For: (thurston) Adrian Thurston,,,
+# Title: exstact
+# Pages: 1
 Portrait
 Center
-Metric
-A4
+Inches
+Letter
 100.00
 Single
 -2
-# Generated by dot version 2.2.1 (Fri Sep 30 13:22:44 UTC 2005)
-# For: (age) Adrian Thurston
-# Title: exstact
-# Pages: 1
 1200 2
-0 32 #d2d2d2
+0 32 #d3d3d3
+2 3 0 1 7 7 2 0 20 0.0 0 0 0 0 0 5
+ 0 2780 0 0 7400 0 7400 2780 0 2780
 # ENTRY
-1 1 0 1 0 0 0 0 20 0.000 0 0.0000 33 4183 33 33 33 4183 66 4216
-# 0
-1 1 0 1 0 32 0 0 -1 0.000 0 0.0000 1333 4183 383 383 1333 4183 1716 4566
-4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 1333 4266 0\001
-# ENTRY -> 0
+1 1 0 1 0 0 1 0 20 0.000 0 0.0000 120 360 40 -40 120 360 160 320
+# 1
+1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 1920 800 460 -470 1920 800 2380 330
+4 1 0 1 0 0 14.0 0.0000 4 0.0 0.0 1920 880 1\001
+# ENTRY->1
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
-  66 4183 139 4183 237 4183 354 4183 485 4183 624 4183 766 4183
+  160 380 266 406 419 443 605 488 815 537 1037 589 1260 640
  0 1 1 1 1 1 0
 2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
- 766 4116 933 4183 766 4233 766 4116
-4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 500 4133 IN\001
-# 1
-1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 5233 4183 383 383 5233 4183 5616 4566
-1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 5233 4183 450 450 5233 4183 5683 4633
-4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 5233 4266 1\001
-# 0 -> 1
+ 1278 572 1460 680 1250 709 1278 572
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 800 360 IN\001
+# en_1
+1 1 0 1 0 0 1 0 20 0.000 0 0.0000 120 1220 40 -40 120 1220 160 1180
+# en_1->1
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 13
+  160 1220 253 1230 385 1237 545 1240 721 1236 904 1224 1080 1200 1121 1190 1165 1180 1210 1170 1255 1160 1299 1150 1340 1140
+ 0 1 1 1 1 1 1 1 1 1 1 1 0
+2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
+ 1311 1076 1520 1040 1379 1198 1311 1076
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 800 1080 main\001
+# 3
+1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 6760 960 461 -470 6760 960 7221 490
+1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 6760 960 540 -550 6760 960 7300 410
+4 1 0 1 0 0 14.0 0.0000 4 0.0 0.0 6760 1040 3\001
+# 1->3
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 13
-  1733 4166 2025 4150 2372 4135 2760 4122 3171 4114 3590 4112 4000 4116 4094 4117 4192 4120 4293 4125 4396 4129 4498 4132 4600 4133
+  2400 760 2460 759 2520 755 2580 750 2640 745 2700 741 2760 740 3342 731 3934 741 4518 765 5073 799 5580 839 6020 880
  0 1 1 1 1 1 1 1 1 1 1 1 0
 2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
- 4600 4083 4766 4150 4600 4183 4600 4083
-4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 3600 4066 ' '\001
+ 6028 810 6220 900 6014 950 6028 810
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 4680 660 SP / A\001
 # 2
-1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 3600 5216 383 383 3600 5216 3983 5599
-4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 3600 5300 2\001
-# 0 -> 2
+1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 4680 2240 460 -470 4680 2240 5140 1770
+4 1 0 1 0 0 14.0 0.0000 4 0.0 0.0 4680 2320 2\001
+# 1->2
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
-  1700 4350 1900 4442 2129 4547 2375 4660 2625 4774 2871 4884 3100 4983
+  2340 1020 2593 1151 2880 1298 3188 1455 3500 1616 3803 1773 4080 1920
  0 1 1 1 1 1 0
 2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
- 3116 4933 3250 5050 3066 5033 3116 4933
-4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 2466 4500 'a'..'z' / A\001
-# 2 -> 1
+ 4119 1862 4260 2020 4051 1984 4119 1862
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 3300 1100 'a'..'z' / A\001
+# 2->3
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
-  3933 5000 4047 4928 4172 4848 4304 4764 4438 4679 4571 4595 4700 4516
+  5080 2000 5231 1904 5399 1799 5578 1688 5761 1575 5944 1464 6120 1360
  0 1 1 1 1 1 0
 2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
- 4683 4466 4850 4433 4733 4566 4683 4466
-4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 4383 4666 ' '\001
-# 2 -> 2
+ 6095 1293 6300 1240 6172 1409 6095 1293
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 5680 1420 SP\001
+# 2->2
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 13
-  3866 4933 3887 4834 3882 4740 3852 4658 3795 4592 3711 4549 3600 4533 3516 4541 3448 4564 3395 4600 3356 4646 3330 4703 3316 4766
+  4340 1900 4307 1781 4308 1669 4345 1570 4419 1491 4530 1439 4680 1420 4790 1430 4881 1457 4953 1500 5006 1556 5042 1624 5060 1700
  0 1 1 1 1 1 1 1 1 1 1 1 0
 2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
- 3366 4766 3333 4933 3266 4766 3366 4766
-4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 3600 4483 'a'..'z'\001
+ 5128 1718 5020 1900 4991 1690 5128 1718
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 4680 1300 'a'..'z'\001
 # end of FIG file
index abac727..c02bd0e 100755 (executable)
@@ -9,8 +9,8 @@ for fig; do
                opt=`awk -f extract.awk -vexname=$fig $input | 
                                sed '/^ *OPT:/s/^.*: *//p;d'`
                awk -f extract.awk -vexname=$fig $input | \
-                       ragel | rlcodegen -V $opt | \
-                       dot -Tfig | awk -f fixbackbox.awk > ${fig}.fig;
+                       ../ragel/ragel | ../rlgen-dot/rlgen-dot $opt | \
+                       dot -Tfig > ${fig}.fig;
        else
                echo "$0: internal error: figure $fig not found in $input" >&2
                exit 1
index 12088ba..bda8f11 100644 (file)
@@ -1415,21 +1415,21 @@ and statements are parsed and translated. These allow the user to interact with
 from action code. See Section \ref{vals} for a complete list of statements and
 values available in code blocks. 
 
-\subsection{Starting Action}
+\subsection{Entering Action}
 
 \verb|expr > action| 
 \verbspace
 
-The starting transition operator embeds an action into all transitions that
-leave the start state. In some machines the start state has in transtions from
-within the machine and the start state is effectively reused. In these cases
-the start state is first isolated from the rest of the machine and the starting
-actions do not get re-executed.
+The entering action operator embeds an action into all transitions
+that enter into the machine from the start state. If the start state is final,
+then the action is also embedded into the start state as a leaving action. This
+means that if a machine accepts the zero-length string and control passes
+through it then the entering action is still executed. Note
+that this can happen on both a following character and on the EOF event.
 
-If the start state is a final state then it is possible for the machine to
-never be started and the starting transitions by-passed.  In the following
-example, the action is executed on the first transition of the machine. If the
-repetition machine is bypassed the action is not executed.
+In some machines the start state has transtions coming in from within the
+machine. In these cases the start state is first isolated from the rest of the
+machine ensuring that the entering actions are not re-executed.
 
 \verbspace