Began replacement of manually drawn figures with graphviz drawn figures.
authorthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Sat, 27 Jan 2007 06:15:46 +0000 (06:15 +0000)
committerthurston <thurston@052ea7fc-9027-0410-9066-f65837a77df0>
Sat, 27 Jan 2007 06:15:46 +0000 (06:15 +0000)
git-svn-id: http://svn.complang.org/ragel/trunk@18 052ea7fc-9027-0410-9066-f65837a77df0

doc/Makefile.in
doc/bmconcat.fig
doc/bmnull.fig
doc/bmnum.fig
doc/bmor.fig
doc/extract.awk [new file with mode: 0644]
doc/fixbackbox.awk [new file with mode: 0644]
doc/genfigs.sh [new file with mode: 0755]
doc/ragel-guide.tex

index f52e021..50f47d6 100644 (file)
@@ -38,6 +38,9 @@ ragel-guide.pdf: $(PDFFIGS) $(INPUT)
 %.pdf: %.fig
        fig2dev -L pdf $< $@
 
+figs: 
+       ./genfigs.sh
+
 %.pdf: %.tex
        pdflatex -interaction=nonstopmode $< >/dev/null
        pdflatex -interaction=nonstopmode $< >/dev/null
index a47f13b..0ca063f 100644 (file)
@@ -1,40 +1,80 @@
 #FIG 3.2
-Landscape
+Portrait
 Center
 Metric
-A4      
+A4
 100.00
 Single
 -2
+# Generated by dot version 2.8 (Wed Jul 19 03:30:15 UTC 2006)
+# For: (thurston) Adrian Thurston,,,
+# Title: bmconcat
+# Pages: 1
 1200 2
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 1440 450 135 135 1440 450 1575 450
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 2115 450 135 135 2115 450 2250 450
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 765 450 135 135 765 450 900 450
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 2790 450 135 135 2790 450 2925 450
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 3465 450 135 135 3465 450 3600 450
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 4140 450 135 135 4140 450 4275 450
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 4140 450 90 90 4140 450 4230 450
-2 1 0 2 0 7 50 0 -1 0.000 0 0 -1 1 0 2
-       1 1 2.00 60.00 60.00
-        900 450 1305 450
-2 1 0 2 0 7 50 0 -1 0.000 0 0 -1 1 0 2
-       1 1 2.00 60.00 60.00
-        1575 450 1980 450
-2 1 0 2 0 7 50 0 -1 0.000 0 0 -1 1 0 2
-       1 1 2.00 60.00 60.00
-        2250 450 2655 450
-2 1 0 2 0 7 50 0 -1 0.000 0 0 -1 1 0 2
-       1 1 2.00 60.00 60.00
-        2925 450 3330 450
-2 1 0 2 0 7 50 0 -1 0.000 0 0 -1 1 0 2
-       1 1 2.00 60.00 60.00
-        3600 450 4005 450
-3 0 0 2 0 7 50 0 -1 0.000 0 1 0 6
-       1 1 2.00 60.00 60.00
-        225 495 315 360 405 630 495 450 540 450 630 450
-        0.000 1.000 1.000 1.000 1.000 0.000
-4 0 0 50 0 0 10 0.0000 4 105 75 1035 405 h\001
-4 0 0 50 0 0 10 0.0000 4 75 60 1710 405 e\001
-4 0 0 50 0 0 10 0.0000 4 105 60 2385 405 l\001
-4 0 0 50 0 0 10 0.0000 4 105 60 3060 405 l\001
-4 0 0 50 0 0 10 0.0000 4 75 75 3735 405 o\001
+0 32 #d2d2d2
+2 3 0 1 7 7 1 0 20 0.0 0 0 0 0 0 5
+ -83 4449 -83 3349 9983 3349 9983 4449 -83 4449
+# ENTRY
+1 1 0 1 0 0 0 0 20 0.000 0 0.0000 33 3916 33 33 33 3916 66 3949
+# 0
+1 1 0 1 0 7 0 0 -1 0.000 0 0.0000 1333 3916 383 383 1333 3916 1716 4299
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 1333 3999 0\001
+# ENTRY->0
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
+  66 3916 139 3916 237 3916 354 3916 485 3916 624 3916 766 3916
+ 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 3849 933 3916 766 3966 766 3849
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 499 3866 IN\001
+# 5
+1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 9399 3916 383 383 9399 3916 9782 4299
+1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 9399 3916 449 449 9399 3916 9848 4365
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 9399 3999 5\001
+# 1
+1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 2966 3916 383 383 2966 3916 3349 4299
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 2966 3999 1\001
+# 0->1
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
+  1733 3916 1837 3916 1946 3916 2060 3916 2175 3916 2289 3916 2399 3916
+ 0 1 1 1 1 1 0
+2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
+ 2399 3849 2566 3916 2399 3966 2399 3849
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 2149 3866 'h'\001
+# 2
+1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 4566 3916 383 383 4566 3916 4949 4299
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 4566 3999 2\001
+# 1->2
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
+  3366 3916 3467 3916 3571 3916 3677 3916 3783 3916 3891 3916 3999 3916
+ 0 1 1 1 1 1 0
+2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
+ 3999 3849 4166 3916 3999 3966 3999 3849
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 3766 3866 'e'\001
+# 3
+1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 6133 3916 383 383 6133 3916 6516 4299
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 6133 3999 3\001
+# 2->3
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
+  4966 3916 5060 3916 5159 3916 5260 3916 5362 3916 5465 3916 5566 3916
+ 0 1 1 1 1 1 0
+2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
+ 5566 3849 5733 3916 5566 3966 5566 3849
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 5349 3866 'l'\001
+# 4
+1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 7699 3916 383 383 7699 3916 8082 4299
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 7699 3999 4\001
+# 3->4
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
+  6533 3916 6627 3916 6725 3916 6827 3916 6929 3916 7032 3916 7133 3916
+ 0 1 1 1 1 1 0
+2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
+ 7133 3849 7299 3916 7133 3966 7133 3849
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 6916 3866 'l'\001
+# 4->5
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
+  8099 3916 8202 3916 8309 3916 8420 3916 8534 3916 8650 3916 8766 3916
+ 0 1 1 1 1 1 0
+2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
+ 8766 3849 8933 3916 8766 3966 8766 3849
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 8516 3866 'o'\001
+# end of FIG file
index 1b85885..c2a0310 100644 (file)
@@ -1,15 +1,30 @@
 #FIG 3.2
-Landscape
+Portrait
 Center
 Metric
-A4      
+A4
 100.00
 Single
 -2
+# Generated by dot version 2.8 (Wed Jul 19 03:30:15 UTC 2006)
+# For: (thurston) Adrian Thurston,,,
+# Title: bmnull
+# Pages: 1
 1200 2
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 765 450 135 135 765 450 900 450
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 765 450 90 90 765 450 855 450
-3 0 0 2 0 7 50 0 -1 0.000 0 1 0 6
-       1 1 2.00 60.00 60.00
-        225 495 315 360 405 630 495 450 540 450 630 450
-        0.000 1.000 1.000 1.000 1.000 0.000
+0 32 #d2d2d2
+2 3 0 1 7 7 1 0 20 0.0 0 0 0 0 0 5
+ -83 4449 -83 3349 1983 3349 1983 4449 -83 4449
+# ENTRY
+1 1 0 1 0 0 0 0 20 0.000 0 0.0000 33 3916 33 33 33 3916 66 3949
+# 0
+1 1 0 1 0 7 0 0 -1 0.000 0 0.0000 1399 3916 383 383 1399 3916 1782 4299
+1 1 0 1 0 7 0 0 -1 0.000 0 0.0000 1399 3916 449 449 1399 3916 1848 4365
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 1399 3999 0\001
+# ENTRY->0
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
+  66 3916 132 3916 225 3916 341 3916 474 3916 617 3916 766 3916
+ 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 3849 933 3916 766 3966 766 3849
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 499 3866 IN\001
+# end of FIG file
index 5160114..eb09209 100644 (file)
@@ -1,20 +1,40 @@
 #FIG 3.2
-Landscape
+Portrait
 Center
 Metric
-A4      
+A4
 100.00
 Single
 -2
+# Generated by dot version 2.8 (Wed Jul 19 03:30:15 UTC 2006)
+# For: (thurston) Adrian Thurston,,,
+# Title: bmnum
+# Pages: 1
 1200 2
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 765 450 135 135 765 450 900 450
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 1665 450 135 135 1665 450 1800 450
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 1665 450 90 90 1665 450 1755 450
-2 1 0 2 0 7 50 0 -1 0.000 0 0 -1 1 0 2
-       1 1 2.00 60.00 60.00
-        900 450 1530 450
-3 0 0 2 0 7 50 0 -1 0.000 0 1 0 6
-       1 1 2.00 60.00 60.00
-        225 495 315 360 405 630 495 450 540 450 630 450
-        0.000 1.000 1.000 1.000 1.000 0.000
-4 0 0 50 0 0 10 0.0000 4 75 270 1035 405 num\001
+0 32 #d2d2d2
+2 3 0 1 7 7 1 0 20 0.0 0 0 0 0 0 5
+ -83 4449 -83 3349 3616 3349 3616 4449 -83 4449
+# ENTRY
+1 1 0 1 0 0 0 0 20 0.000 0 0.0000 33 3916 33 33 33 3916 66 3949
+# 0
+1 1 0 1 0 7 0 0 -1 0.000 0 0.0000 1333 3916 383 383 1333 3916 1716 4299
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 1333 3999 0\001
+# ENTRY->0
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
+  66 3916 139 3916 237 3916 354 3916 485 3916 624 3916 766 3916
+ 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 3849 933 3916 766 3966 766 3849
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 499 3866 IN\001
+# 1
+1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 3033 3916 383 383 3033 3916 3416 4299
+1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 3033 3916 449 449 3033 3916 3482 4365
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 3033 3999 1\001
+# 0->1
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
+  1733 3916 1835 3916 1943 3916 2054 3916 2167 3916 2283 3916 2399 3916
+ 0 1 1 1 1 1 0
+2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
+ 2399 3849 2566 3916 2399 3966 2399 3849
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 2149 3866 '*'\001
+# end of FIG file
index 69c6da0..3a18886 100644 (file)
@@ -1,28 +1,40 @@
 #FIG 3.2
-Landscape
+Portrait
 Center
 Metric
-A4      
+A4
 100.00
 Single
 -2
+# Generated by dot version 2.8 (Wed Jul 19 03:30:15 UTC 2006)
+# For: (thurston) Adrian Thurston,,,
+# Title: bmor
+# Pages: 1
 1200 2
-5 1 0 2 0 7 50 0 -1 0.000 0 1 1 0 1327.500 103.500 810 585 1305 810 1845 585
-       1 1 2.00 60.00 60.00
-5 1 0 2 0 7 50 0 -1 0.000 0 1 1 0 1327.500 -472.500 900 495 1305 585 1755 495
-       1 1 2.00 60.00 60.00
-5 1 0 2 0 7 50 0 -1 0.000 0 0 1 0 1327.500 796.500 810 315 1305 90 1845 315
-       1 1 2.00 60.00 60.00
-5 1 0 2 0 7 50 0 -1 0.000 0 0 1 0 1327.500 1372.500 900 405 1305 315 1755 405
-       1 1 2.00 60.00 60.00
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 765 450 135 135 765 450 900 450
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 1890 450 90 90 1890 450 1980 450
-1 3 0 2 0 7 50 0 -1 0.000 1 0.0000 1890 450 135 135 1890 450 2025 450
-3 0 0 2 0 7 50 0 -1 0.000 0 1 0 6
-       1 1 2.00 60.00 60.00
-        225 495 315 360 405 630 495 450 540 450 630 450
-        0.000 1.000 1.000 1.000 1.000 0.000
-4 0 0 50 0 0 10 0.0000 4 105 75 1305 45 h\001
-4 0 0 50 0 0 10 0.0000 4 75 60 1305 270 e\001
-4 0 0 50 0 0 10 0.0000 4 105 60 1305 540 l\001
-4 0 0 50 0 0 10 0.0000 4 75 75 1305 765 o\001
+0 32 #d2d2d2
+2 3 0 1 7 7 1 0 20 0.0 0 0 0 0 0 5
+ -83 4449 -83 3349 4516 3349 4516 4449 -83 4449
+# ENTRY
+1 1 0 1 0 0 0 0 20 0.000 0 0.0000 33 3916 33 33 33 3916 66 3949
+# 0
+1 1 0 1 0 7 0 0 -1 0.000 0 0.0000 1333 3916 383 383 1333 3916 1716 4299
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 1333 3999 0\001
+# ENTRY->0
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
+  66 3916 139 3916 237 3916 354 3916 485 3916 624 3916 766 3916
+ 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 3849 933 3916 766 3966 766 3849
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 499 3866 IN\001
+# 1
+1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 3933 3916 383 383 3933 3916 4316 4299
+1 1 0 1 0 0 0 0 -1 0.000 0 0.0000 3933 3916 449 449 3933 3916 4382 4365
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 3933 3999 1\001
+# 0->1
+3 4 0 1 0 0 0 0 -1 0.0 0 0 0 7
+  1733 3916 1960 3916 2217 3916 2491 3916 2771 3916 3045 3916 3299 3916
+ 0 1 1 1 1 1 0
+2 3 0 1 0 0 0 0 20 0.0 0 0 0 0 0 4
+ 3299 3849 3466 3916 3299 3966 3299 3849
+4 1 0 0 0 0 14.0 0.0000 2 0.0 0.0 2599 3866 'e', 'h', 'l', 'o'\001
+# end of FIG file
diff --git a/doc/extract.awk b/doc/extract.awk
new file mode 100644 (file)
index 0000000..2874456
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/awk
+#
+
+BEGIN {
+       in_generate = 0;
+       in_verbatim = 0;
+       return_val = 1;
+}
+
+/^% GENERATE: *[a-z0-9A-Z_\.\-]+ *$/ && $3 == exname {
+       in_generate = 1;
+       return_val = 0;
+       next;
+}
+
+/^% END GENERATE$/ {
+       in_generate = 0;
+       next;
+}
+
+in_generate && /\\begin\{verbatim\}/ {
+       in_generate = 0;
+       in_verbatim = 1;
+       next;
+}
+
+in_verbatim && /\\end\{verbatim\}/ {
+       in_generate = 1;
+       in_verbatim = 0;
+       next;
+}
+
+in_generate && /^%/ {
+       print substr( $0, 2 );
+}
+
+in_verbatim {
+       print $0;
+}
+
+END { exit return_val; }
diff --git a/doc/fixbackbox.awk b/doc/fixbackbox.awk
new file mode 100644 (file)
index 0000000..434fd20
--- /dev/null
@@ -0,0 +1,10 @@
+#!/usr/bin/awk
+#
+
+NF == 16 && $16 == 5 {
+       $7 = 1
+       print $0
+       next;
+}
+
+{ print $0; }
diff --git a/doc/genfigs.sh b/doc/genfigs.sh
new file mode 100755 (executable)
index 0000000..1c58bd2
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/bash
+#
+
+input=ragel-guide.tex
+
+if [ $# = 0 ]; then
+       figs=`awk '/^% GENERATE: *[a-z0-9A-Z_\.\-]+ *$/ {print $3;}' $input`
+else
+       figs="$@"
+fi
+
+for fig in $figs; do
+       if awk -f extract.awk -vexname=$fig $input > /dev/null; then
+               echo generating ${fig}.fig
+               awk -f extract.awk -vexname=$fig $input | \
+                       ragel | rlcodegen -Vp | \
+                       dot -Tfig | awk -f fixbackbox.awk > ${fig}.fig;
+       else
+               echo "$0: internal error: figure $fig not found in $input" >&2
+               exit 1
+       fi
+done
+
index db5f88f..cc15d12 100644 (file)
@@ -20,7 +20,7 @@
 
 \documentclass[letterpaper,12pt,oneside]{book}
 \usepackage{pslatex}
-\usepackage{graphics}
+\usepackage{graphicx}
 \usepackage{comment}
 \usepackage{multicol}
 \usepackage[medium]{titlesec}
@@ -48,6 +48,8 @@
 \setcounter{topnumber}{50}
 \setcounter{bottomnumber}{50}
 
+\newenvironment{inline_code}{\def\baselinestretch{1}\vspace{12pt}\small}{}
+
 \begin{document}
 
 %
@@ -650,8 +652,20 @@ the sequence of characters in the quoted string. If there are 5 characters
 there will be 6 states chained together with the characters in the string. See
 Section \ref{lexing} for information on valid escape sequences. 
 
-\begin{center} 
-\includegraphics{bmconcat}
+% GENERATE: bmconcat
+% %%{
+% machine bmconcat;
+\begin{comment}
+\begin{verbatim}
+main := 'hello';
+\end{verbatim}
+\end{inline_code}
+\end{comment}
+% }%%
+% END GENERATE
+
+\begin{center}
+\includegraphics[scale=0.45]{bmconcat}
 \end{center}
 
 It is possible
@@ -669,27 +683,64 @@ using an initial \verb|^| character as in standard regular expressions.
 See Section \ref{lexing} for information on valid escape sequences
 in or expressions.
 
+% GENERATE: bmor
+% %%{
+% machine bmor;
+\begin{comment}
+\begin{verbatim}
+main := [hello];
+\end{verbatim}
+\end{inline_code}
+\end{comment}
+% }%%
+% END GENERATE
+
 \begin{center}
-\includegraphics{bmor}
+\includegraphics[scale=0.45]{bmor}
 \end{center}
 
 \item \verb|''|, \verb|""|, and \verb|[]| -- Zero Length Machine.  Produces a machine
 that matches the zero length string. Zero length machines have one state that is both
 a start state and a final state.
 
+% GENERATE: bmnull
+% %%{
+% machine bmnull;
+\begin{comment}
+\begin{verbatim}
+main := '';
+\end{verbatim}
+\end{inline_code}
+\end{comment}
+% }%%
+% END GENERATE
+
 \begin{center}
-\includegraphics{bmnull}
+\includegraphics[scale=0.45]{bmnull}
 \end{center}
 
-\item \verb|number| -- Simple Machine. Produces a two state machine with one
+% FIXME: More on the range of values here.
+\item \verb|42| -- Simple Machine. Produces a two state machine with one
 transition on the given number. The number may be in decimal or hexadecimal
 format and should be in the range allowed by the alphabet type. The minimum and
 maximum values permitted are defined by the host machine that Ragel is compiled
 on. For example, numbers in a \verb|short| alphabet on an i386 machine should
 be in the range \verb|-32768| to \verb|32767|.
 
+% GENERATE: bmnum
+% %%{
+% machine bmnum;
+\begin{comment}
+\begin{verbatim}
+main := 42;
+\end{verbatim}
+\end{inline_code}
+\end{comment}
+% }%%
+% END GENERATE
+
 \begin{center}
-\includegraphics{bmnum}
+\includegraphics[scale=0.45]{bmnum}
 \end{center}
 
 \item \verb|/simple_regex/| -- Regular Expression. Regular expressions are