.PS
# Flow.m4
gen_init
ifdef(`FlowchartDefs_',,`include(FlowchartDefs.m4)')
# Could use xcolor with option dvipsnames but define color here for portability:
define(`Thistle',`rgbstring(0.85,0.75,0.85)')dnl
define(`RubineRed',`rgbstring(0.81,0,0.35)')dnl
define(`YellowGreen',`rgbstring(0.68,1,0.18)')dnl
define(`SeaGreen',`rgbstring(0.13,0.70,0.67)')dnl
define(`Goldenrod',`rgbstring(0.85,0.65,0.13)')dnl
linethick_(1.0)
arrowwid = 0.05
arrowht = 0.1
fillval = 0.8
down
Case: Fcase(,
"Test 1",[Fbox("Task 1",, shaded Thistle); W:last [].W; N:last [].N
arrow down linewid/3 from last [].S
Fbox("Task 1.5",, shaded Thistle) with .N at Here
E:last [].E; S:last [].S],
"Test 2",Fbox("Task 2" "is bigger", wid fboxwid*1.2 ht fboxht*3/2, \
shaded SeaGreen),
"Test 3",Fbox("Task 3",, shaded RubineRed)dnl
)
"\sl .N" at Case.N rjust above; "\sl .S" at Case.S rjust below
"\sl .E" at Case.E ljust; "\sl .W" at Case.W rjust
"\sl Case statement" below at Case.s+(0,-0.2)
move to Case.nw+(-12bp__,10bp__)
Whiledo: Fwhiledo("$i < n$",,,Fbox("Task"),"T" above ljust at Test.E) \
with .nw at Case.ne+(0.25,0)
"\sl .N" at Whiledo.N rjust; "\sl .S" at Whiledo.S rjust below
"\sl .E" at Whiledo.E ljust; "\sl .W" at Whiledo.W rjust
"\sl While-do" below at Whiledo.s+(0,-0.2)
Repeatuntil: Frepeatuntil("$n \geq 5$",,,Fbox("Task"),
"T" at Test.E above ljust) with .nw at Whiledo.sw + (0.25,-1)
"\sl .N" at Repeatuntil.N rjust above; "\sl .S" at Repeatuntil.S rjust below
"\sl .E" at Repeatuntil.E ljust; "\sl .W" at Repeatuntil.W rjust
"\sl Repeat-until" below at Repeatuntil.s+(0,-0.2)
Ifthenelse: Fifthenelse("$A