72 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			72 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								Programs
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									pattern { action }
							 | 
						||
| 
								 | 
							
									function name (parameter-list) { statement }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Patterns
							 | 
						||
| 
								 | 
							
									BEGIN
							 | 
						||
| 
								 | 
							
									END
							 | 
						||
| 
								 | 
							
									expresion
							 | 
						||
| 
								 | 
							
									/regular expression/
							 | 
						||
| 
								 | 
							
									pattern && pattern
							 | 
						||
| 
								 | 
							
									pattern || pattern
							 | 
						||
| 
								 | 
							
									!pattern
							 | 
						||
| 
								 | 
							
									(pattern)
							 | 
						||
| 
								 | 
							
									pattern, pattern   -> range pattern
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Actions
							 | 
						||
| 
								 | 
							
									break
							 | 
						||
| 
								 | 
							
									continue
							 | 
						||
| 
								 | 
							
									delete array-element
							 | 
						||
| 
								 | 
							
									do statement while (expression)
							 | 
						||
| 
								 | 
							
									exit [expression]
							 | 
						||
| 
								 | 
							
									expression
							 | 
						||
| 
								 | 
							
									if (expression) statement [else statement]
							 | 
						||
| 
								 | 
							
									input-output statement
							 | 
						||
| 
								 | 
							
									for (expression; expression; expression) statement
							 | 
						||
| 
								 | 
							
									for (variable in array) statement
							 | 
						||
| 
								 | 
							
									next
							 | 
						||
| 
								 | 
							
									return [expression]
							 | 
						||
| 
								 | 
							
									while (expression) statement
							 | 
						||
| 
								 | 
							
									{ statements }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Variables
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								global variables (enabled when awk->opt & HAWK_AWK_OPT_VARDCL)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									global x;
							 | 
						||
| 
								 | 
							
									global x, y;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								local variables  (enabled when awk->opt & HAWK_AWK_OPT_VARDCL)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									local x;
							 | 
						||
| 
								 | 
							
									local x, y;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function arguments (enabled always) 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function funca (x, y)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								local variables in function declaration  (enabled when awk->opt & HAWK_AWK_OPT_FUNCLOCAL)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									function funca (x, y,		v1, v2)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								variables without any declarations (enabled when awk->opt & HAWK_AWK_OPT_NAMEDVAR)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									x = 10; // x is put into the global hash table.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Optimization
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								constant folding
							 | 
						||
| 
								 | 
							
									2 * 10  => 20
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								loop 
							 | 
						||
| 
								 | 
							
									remove while (0) { ... } 
							 | 
						||
| 
								 | 
							
									
							 | 
						||
| 
								 | 
							
								if
							 | 
						||
| 
								 | 
							
									remove if (0) {}
							 | 
						||
| 
								 | 
							
									use else_part only
							 | 
						||
| 
								 | 
							
								
							 |