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