www.pudn.com > SCIgen.rar > graphviz.in, change:2005-04-11,size:6057b


#    This file is part of SCIgen. 
# 
#    SCIgen is free software; you can redistribute it and/or modify 
#    it under the terms of the GNU General Public License as published by 
#    the Free Software Foundation; either version 2 of the License, or 
#    (at your option) any later version. 
# 
#    SCIgen is distributed in the hope that it will be useful, 
#    but WITHOUT ANY WARRANTY; without even the implied warranty of 
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
#    GNU General Public License for more details. 
# 
#    You should have received a copy of the GNU General Public License 
#    along with SCIgen; if not, write to the Free Software 
#    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
 
 
GRAPHVIZ { 
 
LAYOUT 
 
size="3,3"; 
 
NODES 
EDGES 
 
END 
 
} 
 
LAYOUT { 
 
GRAPH_DIR { 
 
} 
 
END } 
 
NUM_NODES 2 
NUM_NODES 3 
NUM_NODES 4 
NUM_NODES 5 
NUM_NODES 6 
NUM_NODES 7 
NUM_NODES 8 
NUM_NODES 9 
NUM_NODES 10 
 
NODES_1 NEW_NODE; 
NODES_2 { 
 
  NEW_NODE; 
  NODES_1 
 
} 
NODES_3 { 
 
  NEW_NODE; 
  NODES_2 
 
} 
NODES_4 { 
 
  NEW_NODE; 
  NODES_3 
 
} 
NODES_5 { 
 
  NEW_NODE; 
  NODES_4 
 
} 
NODES_6 { 
 
  NEW_NODE; 
  NODES_5 
 
} 
NODES_7 { 
 
  NEW_NODE; 
  NODES_6 
 
} 
NODES_8 { 
 
  NEW_NODE; 
  NODES_7 
 
} 
NODES_9 { 
 
  NEW_NODE; 
  NODES_8 
 
} 
NODES_10 { 
 
  NEW_NODE; 
  NODES_9 
 
} 
 
EDGES_1 EDGE; 
EDGES_2 { 
 
  EDGE; 
  EDGES_1 
 
} 
EDGES_3 { 
 
  EDGE; 
  EDGES_2 
 
} 
EDGES_4 { 
 
  EDGE; 
  EDGES_3 
 
} 
EDGES_5 { 
 
  EDGE; 
  EDGES_4 
 
} 
EDGES_6 { 
 
  EDGE; 
  EDGES_5 
 
} 
EDGES_7 { 
 
  EDGE; 
  EDGES_6 
 
} 
EDGES_8 { 
 
  EDGE; 
  EDGES_7 
 
} 
EDGES_9 { 
 
  EDGE; 
  EDGES_8 
 
} 
EDGES_10 { 
 
  EDGE; 
  EDGES_9 
 
} 
EDGES_11 { 
 
  EDGE; 
  EDGES_10 
 
} 
EDGES_12 { 
 
  EDGE; 
  EDGES_11 
 
} 
EDGES_13 { 
 
  EDGE; 
  EDGES_12 
 
} 
EDGES_14 { 
 
  EDGE; 
  EDGES_13 
 
} 
EDGES_15 { 
 
  EDGE; 
  EDGES_14 
 
} 
EDGES_16 { 
 
  EDGE; 
  EDGES_15 
 
} 
 
NEW_NODE nodeNODENUM+ [label=NODE_LABEL, shape=SHAPE_TYPE] 
OLD_NODE nodeNODENUM# 
 
NODENUM\+ 
NODENUM\# 
 
EDGE OLD_NODE EDGEOP LABELED_EDGE 
EDGE! 
 
LABELED_EDGE! 
LABELED_EDGE	OLD_NODE [label=EDGE_LABEL, dir="back"] 
 
EDGE_LABEL_YESNO	yes 
EDGE_LABEL_YESNO	no 
 
NODE_LABEL_PROG		Web Browser 
NODE_LABEL_PROG		Kernel 
NODE_LABEL_PROG		Userspace 
NODE_LABEL_PROG		JVM 
NODE_LABEL_PROG+10	SYSNAME 
NODE_LABEL_PROG		Editor 
NODE_LABEL_PROG		Simulator 
NODE_LABEL_PROG		Emulator 
NODE_LABEL_PROG		File System 
NODE_LABEL_PROG		Network 
NODE_LABEL_PROG		Video Card 
NODE_LABEL_PROG		X 
NODE_LABEL_PROG		Trap handler 
NODE_LABEL_PROG		Memory 
NODE_LABEL_PROG		Shell 
NODE_LABEL_PROG		Keyboard 
NODE_LABEL_PROG		Display 
 
NODE_LABEL_DEC	"NODE_LABEL_LET < NODE_LABEL_LET" 
NODE_LABEL_DEC	"NODE_LABEL_LET == NODE_LABEL_LET" 
NODE_LABEL_DEC	"NODE_LABEL_LET > NODE_LABEL_LET" 
NODE_LABEL_DEC	"NODE_LABEL_LET != NODE_LABEL_LET" 
NODE_LABEL_DEC	"NODE_LABEL_LET % 2\n== 0" 
NODE_LABEL_DEC	"goto\nTWODIG" 
NODE_LABEL_DEC	"goto\nSYSNAME" 
NODE_LABEL_DEC	stop 
NODE_LABEL_DEC	start 
 
TWODIG	NONZ 
TWODIG	NONZDIGIT 
 
NODE_LABEL_LET A 
NODE_LABEL_LET B 
NODE_LABEL_LET C 
NODE_LABEL_LET D 
NODE_LABEL_LET E 
NODE_LABEL_LET F 
NODE_LABEL_LET G 
NODE_LABEL_LET H 
NODE_LABEL_LET I 
NODE_LABEL_LET J 
NODE_LABEL_LET K 
NODE_LABEL_LET L 
NODE_LABEL_LET M 
NODE_LABEL_LET N 
NODE_LABEL_LET O 
NODE_LABEL_LET P 
NODE_LABEL_LET Q 
NODE_LABEL_LET R 
NODE_LABEL_LET S 
NODE_LABEL_LET T 
NODE_LABEL_LET U 
NODE_LABEL_LET V 
NODE_LABEL_LET W 
NODE_LABEL_LET X 
NODE_LABEL_LET Y 
NODE_LABEL_LET Z 
 
NODE_LABEL_NET	Gateway 
NODE_LABEL_NET	"SYSNAME\nnode" 
NODE_LABEL_NET	"SYSNAME\nserver" 
NODE_LABEL_NET	"SYSNAME\nclient" 
NODE_LABEL_NET	Web proxy 
NODE_LABEL_NET	Firewall 
NODE_LABEL_NET	"Remote\nfirewall" 
NODE_LABEL_NET	"Remote\nserver" 
NODE_LABEL_NET	"DNS\nserver" 
NODE_LABEL_NET	"CDN\ncache" 
NODE_LABEL_NET	"Home\nuser" 
NODE_LABEL_NET	VPN 
NODE_LABEL_NET	"Bad\nnode" 
NODE_LABEL_NET	"Failed!" 
NODE_LABEL_NET	"Client\nA" 
NODE_LABEL_NET	"Client\nB" 
NODE_LABEL_NET	"Server\nA" 
NODE_LABEL_NET	"Server\nB" 
NODE_LABEL_NET	"NAT" 
 
NODE_LABEL_HW	"L1\ncache" 
NODE_LABEL_HW	"L2\ncache" 
NODE_LABEL_HW	"L3\ncache" 
NODE_LABEL_HW	"Memory\nbus" 
NODE_LABEL_HW	"CPU" 
NODE_LABEL_HW	"GPU" 
NODE_LABEL_HW	"Page\ntable" 
NODE_LABEL_HW	"Register\nfile" 
NODE_LABEL_HW	"SYSNAME\ncore" 
NODE_LABEL_HW	"Trap\nhandler" 
NODE_LABEL_HW	"DMA" 
NODE_LABEL_HW	"Disk" 
NODE_LABEL_HW	"ALU" 
NODE_LABEL_HW	"PC" 
NODE_LABEL_HW	"Stack" 
NODE_LABEL_HW	"Heap" 
 
NONZ 1 
NONZ 2 
NONZ 3 
NONZ 4 
NONZ 5 
NONZ 6 
NONZ 7 
NONZ 8 
NONZ 9 
DIGIT+9	NONZ 
DIGIT 	0 
 
IP_PORT	NONZDIGIT 
 
IP_PART DIGIT 
IP_PART+4	NONZDIGIT 
IP_PART+4	1DIGITDIGIT 
IP_PART	20DIGIT 
IP_PART	21DIGIT 
IP_PART	22DIGIT 
IP_PART	23DIGIT 
IP_PART	23DIGIT 
IP_PART	24DIGIT 
IP_PART	250 
IP_PART	251 
IP_PART	252 
IP_PART	253 
IP_PART	254 
IP_PART	255 
 
NODE_LABEL_IP+5	"IP_PART.IP_PART.IP_PART.IP_PART", IP_FONT_SIZE 
NODE_LABEL_IP	"IP_PART.IP_PART.IP_PART.0/24", IP_FONT_SIZE 
NODE_LABEL_IP	"IP_PART.IP_PART.0.0/16", IP_FONT_SIZE 
NODE_LABEL_IP	"IP_PART.0.0.0/8", IP_FONT_SIZE 
NODE_LABEL_IP	"IP_PART.IP_PART.IP_PART.IP_PART:IP_PORT", IP_FONT_SIZE 
IP_FONT_SIZE	fontsize=9 
 
NODE_LABEL! 
 
 
# letter 
PICK_LABEL_TYPE+2	0 
#programs 
PICK_LABEL_TYPE+2	1 
#network elements 
PICK_LABEL_TYPE+2	2 
# ip addresses 
PICK_LABEL_TYPE	3 
# hardware 
PICK_LABEL_TYPE+2	4 
# decisions 
PICK_LABEL_TYPE+2	5 
 
PICK_GRAPH_TYPE graph 
PICK_GRAPH_TYPE digraph 
 
PICK_SHAPE_TYPE+3 SHAPE_TYPE 
PICK_SHAPE_TYPE+2 SHAPE_TYPE SHAPE_TYPE 
PICK_SHAPE_TYPE   SHAPE_TYPE SHAPE_TYPE SHAPE_TYPE 
PICK_SHAPE_TYPE   SHAPE_TYPE SHAPE_TYPE SHAPE_TYPE SHAPE_TYPE SHAPE_TYPE 
 
SHAPE_TYPE+7	ellipse 
SHAPE_TYPE	circle 
SHAPE_TYPE	egg 
SHAPE_TYPE+5	triangle 
SHAPE_TYPE+5	diamond 
SHAPE_TYPE+10	box 
SHAPE_TYPE	trapezium 
SHAPE_TYPE	parallelogram 
SHAPE_TYPE	house 
SHAPE_TYPE	hexagon 
SHAPE_TYPE	octagon 
SHAPE_TYPE	record 
SHAPE_TYPE	polygon 
SHAPE_TYPE! 
 
UNDIR_LAYOUT neato 
UNDIR_LAYOUT twopi 
UNDIR_LAYOUT circo 
UNDIR_LAYOUT fdp 
 
DIR_LAYOUT dot