Editing of chapter three. Removed the main label and reduced the state size in
authorthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Thu, 10 Jan 2008 18:52:06 +0000 (18:52 +0000)
committerthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Thu, 10 Jan 2008 18:52:06 +0000 (18:52 +0000)
the two diagrams that need to the updated for 6.0.

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

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

index 0bd45de..9829f06 100644 (file)
@@ -13,61 +13,52 @@ Single
 1200 2
 0 32 #d3d3d3
 2 3 0 1 7 7 2 0 20 0.0 0 0 0 0 0 5
- 0 2780 0 0 9080 0 9080 2780 0 2780
+ 0 2460 0 0 8680 0 8680 2460 0 2460
 # ENTRY
-1 1 0 1 0 0 1 0 20 0.000 0 0.0000 120 360 40 -40 120 360 160 320
+1 1 0 1 0 0 1 0 20 0.000 0 0.0000 120 720 40 -40 120 720 160 680
 # 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
+1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 1640 720 420 -430 1640 720 2060 290
+4 1 0 1 0 0 14.0 0.0000 4 0.0 0.0 1640 800 1\001
 # ENTRY->1
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
-  160 380 266 406 419 443 605 488 815 537 1037 589 1260 640
+  160 720 247 720 364 720 505 720 662 720 829 720 1000 720
  0 1 1 1 1 1 0
 2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
- 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
+ 1000 650 1200 720 1000 790 1000 650
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 680 600 IN\001
 # 3
-1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 8440 960 461 -470 8440 960 8901 490
-1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 8440 960 540 -550 8440 960 8980 410
-4 1 0 1 0 0 14.0 0.0000 4 0.0 0.0 8440 1040 3\001
+1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 8080 720 422 -430 8080 720 8502 290
+1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 8080 720 500 -510 8080 720 8580 210
+4 1 0 1 0 0 14.0 0.0000 4 0.0 0.0 8080 800 3\001
 # 1->3
-3 4 0 1 0 0 0 0 -1 0.0 0 0 0 13
-  2380 720 2448 718 2514 714 2578 708 2639 699 2700 690 2760 680 3668 645 4587 652 5485 690 6326 748 7076 815 7700 880
- 0 1 1 1 1 1 1 1 1 1 1 1 0
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 19
+  2060 620 2121 610 2185 600 2250 590 2315 580 2379 570 2440 560 3383 488 4150 465 4828 480 5504 521 6265 579 7200 640 7229 641 7255 645 7280 650 7305 655 7331 659 7360 660
+ 0 1 1 1 1 1 1 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
- 7708 810 7900 900 7694 950 7708 810
-4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 5300 560 '\\n' / A, C, N\001
+ 7368 590 7560 680 7354 730 7368 590
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 4980 360 '\\n' / A, C, N\001
 # 2
-1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 5300 2240 460 -470 5300 2240 5760 1770
-4 1 0 1 0 0 14.0 0.0000 4 0.0 0.0 5300 2320 2\001
+1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 4980 1960 420 -430 4980 1960 5400 1530
+4 1 0 1 0 0 14.0 0.0000 4 0.0 0.0 4980 2040 2\001
 # 1->2
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
-  2360 980 2686 1124 3068 1288 3483 1465 3905 1645 4312 1820 4680 1980
+  2040 860 2376 985 2767 1133 3188 1293 3613 1454 4019 1607 4380 1740
  0 1 1 1 1 1 0
 2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
- 4706 1915 4860 2060 4649 2043 4706 1915
-4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 3480 1040 'a'..'z' / A, B\001
+ 4409 1675 4580 1800 4368 1810 4409 1675
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 3160 920 'a'..'z' / A, B\001
 # 2->3
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
-  5740 2060 6026 1948 6352 1817 6703 1675 7061 1530 7413 1389 7740 1260
+  5380 1800 5669 1681 6002 1547 6363 1405 6731 1259 7090 1116 7420 980
  0 1 1 1 1 1 0
 2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
- 7709 1197 7920 1180 7766 1325 7709 1197
-4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 6960 1260 '\\n' / C, N\001
+ 7389 917 7600 900 7446 1045 7389 917
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 6640 1000 '\\n' / C, N\001
 # 2->2
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 13
-  4880 2040 4742 1897 4687 1755 4715 1625 4827 1519 5022 1446 5300 1420 5533 1439 5712 1491 5835 1570 5901 1669 5910 1781 5860 1900
+  4580 1780 4432 1645 4368 1509 4390 1383 4499 1278 4695 1206 4980 1180 5220 1199 5401 1250 5523 1328 5586 1423 5592 1530 5540 1640
  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
- 5911 1948 5720 2040 5812 1849 5911 1948
-4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 5300 1300 'a'..'z' / B\001
+ 5577 1701 5380 1780 5484 1596 5577 1701
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 4980 1060 'a'..'z' / B\001
 # end of FIG file
index 8cd61cf..849f8ed 100644 (file)
@@ -13,61 +13,52 @@ Single
 1200 2
 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
+ 0 2340 0 0 6920 0 6920 2340 0 2340
 # ENTRY
-1 1 0 1 0 0 1 0 20 0.000 0 0.0000 120 360 40 -40 120 360 160 320
+1 1 0 1 0 0 1 0 20 0.000 0 0.0000 120 600 40 -40 120 600 160 560
 # 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
+1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 1640 600 420 -430 1640 600 2060 170
+4 1 0 1 0 0 14.0 0.0000 4 0.0 0.0 1640 680 1\001
 # ENTRY->1
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
-  160 380 266 406 419 443 605 488 815 537 1037 589 1260 640
+  160 600 247 600 364 600 505 600 662 600 829 600 1000 600
  0 1 1 1 1 1 0
 2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
- 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
+ 1000 530 1200 600 1000 670 1000 530
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 680 480 IN\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 1 0 1 0 7 1 0 -1 0.000 0 0.0000 6320 600 422 -430 6320 600 6742 170
+1 1 0 1 0 7 1 0 -1 0.000 0 0.0000 6320 600 500 -510 6320 600 6820 90
+4 1 0 1 0 0 14.0 0.0000 4 0.0 0.0 6320 680 3\001
 # 1->3
-3 4 0 1 0 0 0 0 -1 0.0 0 0 0 13
-  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
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 19
+  2080 560 2140 551 2200 545 2260 540 2320 535 2380 529 2440 520 2902 495 3277 479 3608 470 3936 468 4306 472 4760 480 4901 490 5044 500 5188 510 5329 520 5467 530 5600 540
+ 0 1 1 1 1 1 1 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
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
5608 470 5800 560 5594 610 5608 470
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 4320 360 SP / A\001
 # 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 1 0 1 0 7 1 0 -1 0.000 0 0.0000 4320 1840 420 -430 4320 1840 4740 1410
+4 1 0 1 0 0 14.0 0.0000 4 0.0 0.0 4320 1920 2\001
 # 1->2
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
-  2340 1020 2593 1151 2880 1298 3188 1455 3500 1616 3803 1773 4080 1920
+  2020 780 2273 899 2560 1032 2868 1173 3180 1315 3483 1453 3760 1580
  0 1 1 1 1 1 0
 2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
- 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
+ 3786 1515 3940 1660 3729 1643 3786 1515
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 2980 880 'a'..'z' / A\001
 # 2->3
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
-  5080 2000 5231 1904 5399 1799 5578 1688 5761 1575 5944 1464 6120 1360
+  4680 1620 4829 1525 4993 1423 5168 1315 5347 1204 5526 1091 5700 980
  0 1 1 1 1 1 0
 2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
- 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
+ 5671 916 5880 880 5739 1038 5671 916
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 5280 1080 SP\001
 # 2->2
 3 4 0 1 0 0 0 0 -1 0.0 0 0 0 13
-  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
+  4020 1540 3970 1421 3960 1309 3990 1210 4060 1131 4170 1079 4320 1060 4430 1070 4520 1097 4590 1140 4640 1196 4670 1264 4680 1340
  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
- 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
+ 4745 1369 4620 1540 4610 1328 4745 1369
+4 1 0 0 0 0 14.0 0.0000 4 0.0 0.0 4320 940 'a'..'z'\001
 # end of FIG file
index c02bd0e..8d52107 100755 (executable)
@@ -5,12 +5,11 @@ input=ragel-guide.tex
 
 for fig; do
        if awk -f extract.awk -vexname=$fig $input > /dev/null; then
-               echo generating ${fig}.fig
+               echo generating ${fig}.dot
                opt=`awk -f extract.awk -vexname=$fig $input | 
                                sed '/^ *OPT:/s/^.*: *//p;d'`
-               awk -f extract.awk -vexname=$fig $input | \
-                       ../ragel/ragel | ../rlgen-dot/rlgen-dot $opt | \
-                       dot -Tfig > ${fig}.fig;
+               awk -f extract.awk -vexname=$fig $input > ${fig}.rl
+               ../ragel/ragel -V -p ${fig}.rl > ${fig}.dot
        else
                echo "$0: internal error: figure $fig not found in $input" >&2
                exit 1
index 87b140f..2d4b8e0 100644 (file)
@@ -1377,13 +1377,13 @@ Ragel permits the user to embed actions into the transitions of a regular
 expression's corresponding state machine. These actions are executed when the
 generated code moves over a transition.  Like the regular expression operators,
 the action embedding operators are fully compositional. They take a state
-machine and an action as input, embed the action, and yield a new state machine
+machine and an action as input, embed the action and yield a new state machine
 that can be used in the construction of other machines. Due to the
 compositional nature of embeddings, the user has complete freedom in the
 placement of actions.
 
-A machine's transitions are categorized into four classes, The action embedding
-operators access the transitions defined by these classes.  The {\em starting
+A machine's transitions are categorized into four classes. The action embedding
+operators access the transitions defined by these classes.  The {\em entering
 transition} operator \verb|>| isolates the start state, then embeds an action
 into all transitions leaving it. The {\em finishing transition} operator
 \verb|@| embeds an action into all transitions going into a final state.  The
@@ -1406,10 +1406,12 @@ Action names can be referenced by the action embedding operators in
 expressions. Though actions need not be named in this way (literal blocks
 of code can be embedded directly when building machines), defining reusable
 blocks of code whenever possible is good practice because it potentially increases the
-degree to which the machine can be minimized. Within an action some Ragel expressions
-and statements are parsed and translated. These allow the user to interact with the machine
-from action code. See Section \ref{vals} for a complete list of statements and
-values available in code blocks. 
+degree to which the machine can be minimized. 
+
+Within an action some Ragel expressions and statements are parsed and
+translated. These allow the user to interact with the machine from action code.
+See Section \ref{vals} for a complete list of statements and values available
+in code blocks. 
 
 \subsection{Entering Action}
 
@@ -1420,12 +1422,12 @@ 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
+through the start state then the entering action is executed. Note
 that this can happen on both a following character and on the EOF event.
 
 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.
+machine ensuring that the entering actions are exected once only.
 
 \verbspace
 
@@ -1454,11 +1456,12 @@ main := ( lower* >A ) . ' ';
 \verb|expr @ action|
 \verbspace
 
-The finishing action operator embeds an action into any transitions that go into a
-final state. Whether or not the machine accepts is not determined at the point
-the action is executed. Further input may move the machine out of the accepting
-state, but keep it in the machine. As in the following example, the
-into-final-state operator is most often used when no lookahead is necessary.
+The finishing action operator embeds an action into any transitions that move
+the machine into a final state. Further input may move the machine out of the
+final state, but keep it in the machine. Therefore finishing actions may be
+executed more than once if a machine has any internal transitions out of a
+final state. In the following example the final state has no transitions out
+and the finishing action is executed only once.
 
 % GENERATE: exdoneact
 % OPT: -p
@@ -1497,7 +1500,7 @@ following example, A is executed on every character matched.
 % action A {}
 \begin{inline_code}
 \begin{verbatim}
-# Execute A on any characters of machine one or two.
+# Execute A on any characters of the machine.
 main := ( 'm1' | 'm2' ) $A;
 \end{verbatim}
 \end{inline_code}
@@ -1511,20 +1514,21 @@ main := ( 'm1' | 'm2' ) $A;
 \graphspace
 
 
-\subsection{Pending Out (Leaving) Actions}
+\subsection{Leaving Actions}
 \label{out-actions}
 
 \verb|expr % action|
 \verbspace
 
-The pending out action operator queues an action for embedding into the
-transitions that leave a machine. The action is first stored in the final
-states of the machine and is later transferred to any transitions that are made
-going out of the machine. The transfer can be caused either by a concatenation
-or kleene star operation. If a final state is still final when compilation is
-complete then the pending out action is also embedded as an EOF action into the
-final state. Therefore, leaving the machine is defined as either leaving on a
-character or as state machine acceptance.
+The leaving action operator queues an action for embedding into the transitions
+that go out of a machine via a final state. The action is first stored in
+the machine's final states and is later transferred to any transitions that are
+made going out of the machine by a kleene star or concatenation operation.
+
+If a final state of the machine is still final when compilation is complete
+then the leaving action is also embedded as an EOF action. Therefore, leaving
+the machine is defined as either leaving on a character or as state machine
+acceptance.
 
 This operator allows one to associate an action with the termination of a
 sequence, without being concerned about what particular character terminates
@@ -1615,9 +1619,9 @@ main := ( lower* >A $B %C ) . '\n' @N;
 The state embedding operators allow one to embed actions into states. Like the
 transition embedding operators, there are several different classes of states
 that the operators access. The meanings of the symbols are similar to the
-meanings of the symbols used by the transition embedding operators. The design
+meanings of the symbols used for the transition embedding operators. The design
 of the state selections was driven by a need to cover the states of an
-expression with a single error action.
+expression with exactly one error action.
 
 Unlike the transition embedding operators, the state embedding operators are
 also distinguished by the different kinds of events that embedded actions can
@@ -1724,7 +1728,7 @@ user may wish to print an error message that depends on the context.  It
 may also be desirable to consume input in an attempt to return the input stream
 to some known state and resume parsing. To support error handling and recovery,
 Ragel provides error action embedding operators. There are two kinds of error
-actions, regular (global) error actions and local error actions.
+actions: global error actions and local error actions.
 Error actions can be used to simply report errors, or by jumping to a machine
 instantiation that consumes input, can attempt to recover from errors.  
 
@@ -1775,8 +1779,9 @@ There are two forms of local error action embeddings. In the first form the
 name defaults to the current machine. In the second form the machine name can
 be specified.  This is useful when it is more convenient to specify the local
 error action in a sub-definition that is used to construct the machine
-definition where the transfer should happen. To embed local error actions and
-explicitly state the machine on which the transfer is to happen use
+definition that the local error action is associated with. To embed local 
+error actions and
+explicitly state the machine definition on which the transfer is to happen use
 \verb|(name, action)| as the action.
 
 \subsubsection{Example}
@@ -1833,7 +1838,7 @@ main := (
 
 When combining expressions that have embedded actions it is often the case that
 a number of actions must be executed on a single input character. For example,
-following a concatenation the pending out action of the left expression and the
+following a concatenation the leaving action of the left expression and the
 entering action of the right expression will be embedded into one transition.
 This requires a method of ordering actions that is intuitive and
 predictable for the user, and repeatable for the compiler. 
@@ -1850,7 +1855,8 @@ appear.
 
 Ragel does not permit a single action to appear multiple times in an action
 list. When the final machine has been created, actions that appear more than
-once in a single transition or EOF action list have their duplicates removed.
+once in a single transition, to-state, from-state or EOF action list have their
+duplicates removed.
 The first appearance of the action is preserved. This is useful in a number of
 scenarios. First, it allows us to union machines with common prefixes without
 worrying about the action embeddings in the prefix being duplicated. Second, it
@@ -1863,6 +1869,7 @@ begins with a common character. For example:
 word = [a-z]+ %act;
 main := word ( '\n' word )* '\n\n';
 \end{verbatim}
+\verbspace
 
 Note that Ragel does not compare action bodies to determine if they have
 identical program text. It simply checks for duplicates using each action
@@ -1893,8 +1900,8 @@ entry point \verb|label|. The integer value returned will be a compile time
 constant. This number is suitable for later use in control flow transfer
 statements that take an expression. This value should not be compared against
 the current state because any given label can have multiple states representing
-it. The value returned by \verb|fentry| will be one of the possibly multiple states the
-label represents.
+it. The value returned by \verb|fentry| can be any one of the multiple states that
+it represents.
 \end{itemize}
 
 \noindent The following statements are available in code blocks:
@@ -1947,8 +1954,7 @@ representing a state.
 
 \item \verb|fret;| -- Return to the target state of the transition on which the
 last \verb|fcall| was made.  Use of \verb|fret| requires the declaration of a
-call stack with \verb|fstack| in the struct block.  Control is immediately
-transferred to the destination state.
+call stack. Control is immediately transferred to the destination state.
 
 \item \verb|fbreak;| -- Save the current state and immediately break out of the
 execute loop. This statement is useful in conjunction with the \verb|noend|
@@ -1968,7 +1974,7 @@ to other machine construction operators. If an action jumps to another state
 then unioning any transition that executes that action with another transition
 that follows some other path will cause that other path to be lost. Using
 commands that manually jump around a machine takes us out of the domain of
-regular languages because transitions that may be conditional and that the
+regular languages because transitions that the
 machine construction operators are not aware of are introduced.  These
 commands should therefore be used with caution.