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
 | |
| 
 |