[lexer] DOT graph of lexer states: numbers, bools, and parens so far
This commit is contained in:
		
							parent
							
								
									ebee8c8646
								
							
						
					
					
						commit
						4341268d0d
					
				
					 2 changed files with 76 additions and 0 deletions
				
			
		
							
								
								
									
										2
									
								
								doc/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								doc/Makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | ||||||
|  | lexer.pdf: lexer.dot | ||||||
|  | 	dot -Tpdf -O$@ $^ | ||||||
							
								
								
									
										74
									
								
								doc/lexer.dot
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								doc/lexer.dot
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,74 @@ | ||||||
|  | digraph lexer { | ||||||
|  |     rankdir=LR; | ||||||
|  |     node [shape = doublecircle] LP RP B0 BF DP1 DD0 DD1 DD2 DR0 DR1 INF NAN EXD; | ||||||
|  |     node [shape = circle]; | ||||||
|  |     BEGIN -> LP  [ label = "(" ]; | ||||||
|  |     BEGIN -> RP  [ label = ")" ]; | ||||||
|  |     BEGIN -> H [ label = "#" ]; | ||||||
|  | 
 | ||||||
|  |     subgraph bools { | ||||||
|  |         H -> B0 [ label = "t,f" ]; | ||||||
|  |         B0 -> BF [ label = "rue,alse" ]; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | /* | ||||||
|  |     subgraph chars { | ||||||
|  |         H -> SL [ label = "\\" ]; | ||||||
|  |         SL -> CH1 [ label = "*" ]; | ||||||
|  |         SL -> NMCH [ label = "alarm" ]; | ||||||
|  |         SL -> NMCH [ label = "backspace" ]; | ||||||
|  |         SL -> NMCH [ label = "delete" ]; | ||||||
|  |         SL -> NMCH [ label = "escape" ]; | ||||||
|  |         SL -> NMCH [ label = "newline" ]; | ||||||
|  |         SL -> NMCH [ label = "null" ]; | ||||||
|  |         SL -> NMCH [ label = "return" ]; | ||||||
|  |         SL -> NMCH [ label = "space" ]; | ||||||
|  |         SL -> NMCH [ label = "tab" ]; | ||||||
|  |         SL -> XC [ label = "x" ]; | ||||||
|  |     } | ||||||
|  | */ | ||||||
|  |       | ||||||
|  |     subgraph numbers { | ||||||
|  |         BEGIN -> DD0 [ label = "0-9" ]; | ||||||
|  |         BEGIN -> SN0 [ label = "+,-" ]; | ||||||
|  |         BEGIN -> DP0 [ label = "." ]; | ||||||
|  |         DD0 -> DD0 [ label = "0-9" ]; | ||||||
|  |         DD0 -> DP1 [ label = "." ]; | ||||||
|  |         DP1 -> DD1 [ label = "0-9" ]; | ||||||
|  |         DP0 -> DD1 [ label = "0-9" ]; | ||||||
|  |         DD1 -> DD1 [ label = "0-9" ]; | ||||||
|  |         SN0 -> DD0 [ label = "0-9" ]; | ||||||
|  |         SN0 -> DP0 [ label = "." ]; | ||||||
|  |         SN0 -> INF [ label = "inf.0" ]; | ||||||
|  |         SN0 -> NAN [ label = "nan.0" ]; | ||||||
|  | 
 | ||||||
|  |         H -> NEX [ label = "i,e" ]; | ||||||
|  |         NEX -> DD0 [ label = "0-9" ]; | ||||||
|  |         NEX -> SN0 [ label = "." ]; | ||||||
|  | 
 | ||||||
|  |         H -> NBD [ label = "d" ]; | ||||||
|  |         NBD -> DD0 [ label = "0-9" ]; | ||||||
|  |         NBD -> SN0 [ label = "." ]; | ||||||
|  | 
 | ||||||
|  |         H -> NBS [ label = "b,o,x" ]; | ||||||
|  |         NBS -> DR0 [ label = "Dr" ]; | ||||||
|  |         DR0 -> DR0 [ label = "Dr" ]; | ||||||
|  | 
 | ||||||
|  |         DD0 -> EXP [ label = "e" ]; | ||||||
|  |         DP1 -> EXP [ label = "e" ]; | ||||||
|  |         DD1 -> EXP [ label = "e" ]; | ||||||
|  | 
 | ||||||
|  |         EXP -> EXS [ label = "+,-" ]; | ||||||
|  |         EXS -> EXD [ label = "0-9" ]; | ||||||
|  |         EXP -> EXD [ label = "0-9" ]; | ||||||
|  |         EXD -> EXD [ label = "0-9" ]; | ||||||
|  | 
 | ||||||
|  |         DR0 -> FR0 [ label = "/" ]; | ||||||
|  |         FR0 -> DR1 [ label = "Dr" ]; | ||||||
|  |         DR1 -> DR1 [ label = "Dr" ]; | ||||||
|  | 
 | ||||||
|  |         DD0 -> FR1 [ label = "/" ]; | ||||||
|  |         FR1 -> DD2 [ label = "0-9" ]; | ||||||
|  |         DD2 -> DD2 [ label = "0-9" ]; | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue