aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1436
1 files changed, 783 insertions, 653 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index ecb37167..6b0919f0 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -381,6 +381,8 @@ in (a) below. A copy of the license is included in the section entitled
* Arrays Summary:: Summary of arrays.
* Built-in:: Summarizes the built-in functions.
* Calling Built-in:: How to call built-in functions.
+* Boolean Functions:: A function that returns Boolean
+ values.
* Numeric Functions:: Functions that work with numbers,
including 'int()', 'sin()'
and 'rand()'.
@@ -488,6 +490,7 @@ in (a) below. A copy of the license is included in the section entitled
* Programs Summary:: Summary of programs.
* Programs Exercises:: Exercises.
* Nondecimal Data:: Allowing nondecimal input data.
+* Boolean Typed Values:: Values with 'number|bool' type.
* Array Sorting:: Facilities for controlling array
traversal and sorting arrays.
* Controlling Array Traversal:: How to use PROCINFO["sorted_in"].
@@ -551,6 +554,7 @@ in (a) below. A copy of the license is included in the section entitled
* Inexact representation:: Numbers are not exactly represented.
* Comparing FP Values:: How to compare floating point values.
* Errors accumulate:: Errors get bigger as they go.
+* Strange values:: A few words about infinities and NaNs.
* Getting Accuracy:: Getting more accuracy takes some work.
* Try To Round:: Add digits and round.
* Setting precision:: How to set the precision.
@@ -3219,7 +3223,9 @@ change. The variables are:
'AWK_HASH'
If this variable exists with a value of 'gst', 'gawk' switches to
using the hash function from GNU Smalltalk for managing arrays.
- This function may be marginally faster than the standard function.
+ With a value of 'fnv1a', 'gawk' uses the FNV1-A hash function
+ (http://www.isthe.com/chongo/tech/comp/fnv/index.html). These
+ functions may be marginally faster than the standard function.
'AWKREADFUNC'
If this variable exists, 'gawk' switches to reading source files
@@ -6970,8 +6976,8 @@ width. Here is a list of the format-control letters:
On systems supporting IEEE 754 floating-point format, values
representing negative infinity are formatted as '-inf' or
'-infinity', and positive infinity as 'inf' or 'infinity'. The
- special "not a number" value formats as '-nan' or 'nan' (*note Math
- Definitions::).
+ special "not a number" value formats as '-nan' or 'nan' (*note
+ Strange values::).
'%F'
Like '%f', but the infinity and "not a number" values are spelled
@@ -12779,6 +12785,7 @@ your convenience.
* Menu:
* Calling Built-in:: How to call built-in functions.
+* Boolean Functions:: A function that returns Boolean values.
* Numeric Functions:: Functions that work with numbers, including
'int()', 'sin()' and 'rand()'.
* String Functions:: Functions for string manipulation, such as
@@ -12791,7 +12798,7 @@ your convenience.
* I18N Functions:: Functions for string translation.

-File: gawk.info, Node: Calling Built-in, Next: Numeric Functions, Up: Built-in
+File: gawk.info, Node: Calling Built-in, Next: Boolean Functions, Up: Built-in
9.1.1 Calling Built-in Functions
--------------------------------
@@ -12835,9 +12842,24 @@ six, and then 12, and 'atan2()' is called with the two arguments six and
10, then 11, and 'atan2()' is called with the two arguments 11 and 10.

-File: gawk.info, Node: Numeric Functions, Next: String Functions, Prev: Calling Built-in, Up: Built-in
+File: gawk.info, Node: Boolean Functions, Next: Numeric Functions, Prev: Calling Built-in, Up: Built-in
-9.1.2 Numeric Functions
+9.1.2 Generating Boolean Values
+-------------------------------
+
+This function is specific to 'gawk'. It is not available in
+compatibility mode (*note Options::):
+
+'mkbool(EXPRESSION)'
+ Return a Boolean-typed value based on the regular Boolean value of
+ EXPRESSION. Boolean "true" values have numeric value one. Boolean
+ "false" values have numeric zero. This is discussed in more detail
+ in *note Boolean Typed Values::.
+
+
+File: gawk.info, Node: Numeric Functions, Next: String Functions, Prev: Boolean Functions, Up: Built-in
+
+9.1.3 Numeric Functions
-----------------------
The following list describes all of the built-in functions that work
@@ -12863,7 +12885,7 @@ brackets ([ ]):
'log(X)'
Return the natural logarithm of X, if X is positive; otherwise,
- return 'NaN' ("not a number") on IEEE 754 systems. Additionally,
+ return NaN ("not a number") on IEEE 754 systems. Additionally,
'gawk' prints a warning message when 'x' is negative.
'rand()'
@@ -12961,7 +12983,7 @@ the same sequence of random numbers over and over again.

File: gawk.info, Node: String Functions, Next: I/O Functions, Prev: Numeric Functions, Up: Built-in
-9.1.3 String-Manipulation Functions
+9.1.4 String-Manipulation Functions
-----------------------------------
The functions in this minor node look at or change the text of one or
@@ -13529,7 +13551,7 @@ number zero.

File: gawk.info, Node: Gory Details, Up: String Functions
-9.1.3.1 More about '\' and '&' with 'sub()', 'gsub()', and 'gensub()'
+9.1.4.1 More about '\' and '&' with 'sub()', 'gsub()', and 'gensub()'
.....................................................................
CAUTION: This subsubsection has been reported to cause headaches.
@@ -13675,7 +13697,7 @@ POSIX rules.

File: gawk.info, Node: I/O Functions, Next: Time Functions, Prev: String Functions, Up: Built-in
-9.1.4 Input/Output Functions
+9.1.5 Input/Output Functions
----------------------------
The following functions relate to input/output (I/O). Optional
@@ -13892,7 +13914,7 @@ the way this was done was probably a mistake.

File: gawk.info, Node: Time Functions, Next: Bitwise Functions, Prev: I/O Functions, Up: Built-in
-9.1.5 Time Functions
+9.1.6 Time Functions
--------------------
'awk' programs are commonly used to process log files containing
@@ -14209,7 +14231,7 @@ does not appear in the returned string or appears literally.

File: gawk.info, Node: Bitwise Functions, Next: Type Functions, Prev: Time Functions, Up: Built-in
-9.1.6 Bit-Manipulation Functions
+9.1.7 Bit-Manipulation Functions
--------------------------------
I can explain it for you, but I can't understand it for you.
@@ -14391,7 +14413,7 @@ that range are reduced to fit within the range.

File: gawk.info, Node: Type Functions, Next: I18N Functions, Prev: Bitwise Functions, Up: Built-in
-9.1.7 Getting Type Information
+9.1.8 Getting Type Information
------------------------------
'gawk' provides two functions that let you distinguish the type of a
@@ -14415,6 +14437,9 @@ contexts.
'"number"'
X is a number.
+ '"number|bool"'
+ X is a Boolean typed value (*note Boolean Typed Values::).
+
'"string"'
X is a string.
@@ -14476,7 +14501,7 @@ arguments from untyped to unassigned.

File: gawk.info, Node: I18N Functions, Prev: Type Functions, Up: Built-in
-9.1.8 String-Translation Functions
+9.1.9 String-Translation Functions
----------------------------------
'gawk' provides facilities for internationalizing 'awk' programs. These
@@ -15155,7 +15180,7 @@ File: gawk.info, Node: Indirect Calls, Next: Functions Summary, Prev: User-de
9.3 Indirect Function Calls
===========================
-This section describes an advanced, 'gawk'-specific extension.
+This minor node describes an advanced, 'gawk'-specific extension.
Often, you may wish to defer the choice of function to call until
runtime. For example, you may have different kinds of records, each of
@@ -20870,6 +20895,7 @@ their own:
* Menu:
* Nondecimal Data:: Allowing nondecimal input data.
+* Boolean Typed Values:: Values with 'number|bool' type.
* Array Sorting:: Facilities for controlling array traversal and
sorting arrays.
* Two-way I/O:: Two-way communications with another process.
@@ -20879,7 +20905,7 @@ their own:
* Advanced Features Summary:: Summary of advanced features.

-File: gawk.info, Node: Nondecimal Data, Next: Array Sorting, Up: Advanced Features
+File: gawk.info, Node: Nondecimal Data, Next: Boolean Typed Values, Up: Advanced Features
12.1 Allowing Nondecimal Input Data
===================================
@@ -20922,9 +20948,53 @@ request it.
This option may disappear in a future version of 'gawk'.

-File: gawk.info, Node: Array Sorting, Next: Two-way I/O, Prev: Nondecimal Data, Up: Advanced Features
+File: gawk.info, Node: Boolean Typed Values, Next: Array Sorting, Prev: Nondecimal Data, Up: Advanced Features
+
+12.2 Boolean Typed Values
+=========================
+
+Scalar values in 'awk' are either numbers or strings. 'gawk' also
+supports values of type 'regexp' (*note Strong Regexp Constants::).
+
+ As described in *note Truth Values::, Boolean values in 'awk' don't
+have a separate type: a value counts as "true" if it is nonzero or
+non-null, and as "false" otherwise.
+
+ When interchanging data with languages that do have a real Boolean
+type, using a standard format such as JSON or XML, the lack of a true
+Boolean type in 'awk' is problematic. (See, for example, the 'json'
+extension provided by the 'gawkextlib' project
+(https://sourceforge.net/projects/gawkextlib).)
-12.2 Controlling Array Traversal and Array Sorting
+ It's easy to import Boolean data into 'awk', but then the fact that
+it was originally Boolean is lost. Exporting data is even harder;
+there's no way to indicate that a value is really Boolean.
+
+ To solve this problem, 'gawk' provides a function named 'mkbool()'.
+It takes one argument, which is any 'awk' expression, and it returns a
+value of Boolean type.
+
+ The returned values are normal 'awk' numeric values, with values of
+either one or zero, depending upon the truth value of the original
+expression passed in the call to 'mkbool()'.
+
+ The 'typeof()' function (*note Type Functions::) returns
+'"number|bool"' for these values.
+
+ Thus Boolean-typed values _are_ numbers as far as 'gawk' is
+concerned, except that extension code can treat them as Booleans if
+desired.
+
+ While it would have been possible to add two new built-in variables
+of Boolean type named 'TRUE' and 'FALSE', doing so would undoubtedly
+have broken many existing 'awk' programs. Instead, having a "generator"
+function that creates Boolean values gives flexibility, without breaking
+as much existing code.
+
+
+File: gawk.info, Node: Array Sorting, Next: Two-way I/O, Prev: Boolean Typed Values, Up: Advanced Features
+
+12.3 Controlling Array Traversal and Array Sorting
==================================================
'gawk' lets you control the order in which a 'for (INDX in ARRAY)' loop
@@ -20943,7 +21013,7 @@ to order the elements during sorting.

File: gawk.info, Node: Controlling Array Traversal, Next: Array Sorting Functions, Up: Array Sorting
-12.2.1 Controlling Array Traversal
+12.3.1 Controlling Array Traversal
----------------------------------
By default, the order in which a 'for (INDX in ARRAY)' loop scans an
@@ -21182,7 +21252,7 @@ character, which cannot be part of an identifier.

File: gawk.info, Node: Array Sorting Functions, Prev: Controlling Array Traversal, Up: Array Sorting
-12.2.2 Sorting Array Values and Indices with 'gawk'
+12.3.2 Sorting Array Values and Indices with 'gawk'
---------------------------------------------------
In most 'awk' implementations, sorting an array requires writing a
@@ -21322,7 +21392,7 @@ POSIX-compatibility mode, and because 'asort()' and 'asorti()' are

File: gawk.info, Node: Two-way I/O, Next: TCP/IP Networking, Prev: Array Sorting, Up: Advanced Features
-12.3 Two-Way Communications with Another Process
+12.4 Two-Way Communications with Another Process
================================================
It is often useful to be able to send data to a separate program for
@@ -21517,7 +21587,7 @@ in Bash.

File: gawk.info, Node: TCP/IP Networking, Next: Profiling, Prev: Two-way I/O, Up: Advanced Features
-12.4 Using 'gawk' for Network Programming
+12.5 Using 'gawk' for Network Programming
=========================================
'EMRED':
@@ -21597,7 +21667,7 @@ complete introduction and discussion, as well as extensive examples.

File: gawk.info, Node: Profiling, Next: Extension Philosophy, Prev: TCP/IP Networking, Up: Advanced Features
-12.5 Profiling Your 'awk' Programs
+12.6 Profiling Your 'awk' Programs
==================================
You may produce execution traces of your 'awk' programs. This is done
@@ -21859,7 +21929,7 @@ source code, it will appear that way in the output.

File: gawk.info, Node: Extension Philosophy, Next: Advanced Features Summary, Prev: Profiling, Up: Advanced Features
-12.6 Builtin Features versus Extensions
+12.7 Builtin Features versus Extensions
=======================================
As this and subsequent major nodes show, 'gawk' has a large number of
@@ -21895,7 +21965,7 @@ or need.

File: gawk.info, Node: Advanced Features Summary, Prev: Extension Philosophy, Up: Advanced Features
-12.7 Summary
+12.8 Summary
============
* The '--non-decimal-data' option causes 'gawk' to treat octal- and
@@ -24252,18 +24322,10 @@ material here:
another number and infinity produce infinity.
"NaN"
- "Not a number."(1) A special value that results from attempting a
- calculation that has no answer as a real number. In such a case,
- programs can either receive a floating-point exception, or get
- 'NaN' back as the result. The IEEE 754 standard recommends that
- systems return 'NaN'. Some examples:
-
- 'sqrt(-1)'
- This makes sense in the range of complex numbers, but not in
- the range of real numbers, so the result is 'NaN'.
-
- 'log(-8)'
- -8 is out of the domain of 'log()', so the result is 'NaN'.
+ "Not a number." A special value that results from attempting a
+ calculation that has no answer as a real number. *Note Strange
+ values::, for more information about infinity and not-a-number
+ values.
"Normalized"
How the significand (see later in this list) is usually stored.
@@ -24322,11 +24384,6 @@ Table 16.3: Basic IEEE format values
NOTE: The precision numbers include the implied leading one that
gives them one extra bit of significand.
- ---------- Footnotes ----------
-
- (1) Thanks to Michael Brennan for this description, which we have
-paraphrased, and for the examples.
-

File: gawk.info, Node: MPFR features, Next: FP Math Caution, Prev: Math Definitions, Up: Arbitrary Precision Arithmetic
@@ -24419,6 +24476,7 @@ be sure of the number of significant decimal places in the final result.
* Inexact representation:: Numbers are not exactly represented.
* Comparing FP Values:: How to compare floating point values.
* Errors accumulate:: Errors get bigger as they go.
+* Strange values:: A few words about infinities and NaNs.

File: gawk.info, Node: Inexact representation, Next: Comparing FP Values, Up: Inexactness of computations
@@ -24483,7 +24541,7 @@ values with a delta, you should be sure to use 'difference < abs(delta)'
in case someone passes in a negative delta value.

-File: gawk.info, Node: Errors accumulate, Prev: Comparing FP Values, Up: Inexactness of computations
+File: gawk.info, Node: Errors accumulate, Next: Strange values, Prev: Comparing FP Values, Up: Inexactness of computations
16.4.1.3 Errors Accumulate
..........................
@@ -24531,6 +24589,64 @@ representations yield an unexpected result:
-| 4

+File: gawk.info, Node: Strange values, Prev: Errors accumulate, Up: Inexactness of computations
+
+16.4.1.4 Floating Point Values They Didn't Talk About In School
+...............................................................
+
+Both IEEE 754 floating-point hardware, and MPFR, support two kinds of
+values that you probably didn't learn about in school. The first is
+"infinity", a special value, that can be either negative or positive,
+and which is either smaller than any other value (negative infinity), or
+larger than any other value (positive infinity). When such values are
+generated, 'gawk' prints them as either '-inf' or '+inf', respectively.
+It accepts those strings as data input and converts them to the proper
+floating-point values internally.
+
+ Infinity values of the same sign compare as equal to each other.
+Otherwise, operations (addition, subtraction, etc.) involving another
+number and infinity produce mathematically reasonable results.
+
+ The second kind of value is "not a number", or NaN for short.(1)
+This is a special value that results from attempting a calculation that
+has no answer as a real number. In such a case, programs can either
+receive a floating-point exception, or get NaN back as the result. The
+IEEE 754 standard recommends that systems return NaN. Some examples:
+
+'sqrt(-1)'
+ This makes sense in the range of complex numbers, but not in the
+ range of real numbers, so the result is NaN.
+
+'log(-8)'
+ -8 is out of the domain of 'log()', so the result is NaN.
+
+ NaN values are strange. In particular, they cannot be compared with
+other floating point values; any such comparison, except for "is not
+equal to", returns false. NaN values are so much unequal to other
+values that even comparing two identical NaN values with '!=' returns
+true!
+
+ NaN values can also be signed, although it depends upon the
+implementation as to which sign you get for any operation that returns a
+NaN. For example, on some systems, 'sqrt(-1)' returns a negative NaN. On
+others, it returns a positive NaN.
+
+ When such values are generated, 'gawk' prints them as either '-nan'
+or '+nan', respectively. Here too, 'gawk' accepts those strings as data
+input and converts them to the proper floating-point values internally.
+
+ If you want to dive more deeply into this topic, you can find test
+programs in C, 'awk' and Python in the directory
+'awklib/eg/test-programs' in the 'gawk' distribution. These programs
+enable comparison among programming languages as to how they handle NaN
+and infinity values.
+
+ ---------- Footnotes ----------
+
+ (1) Thanks to Michael Brennan for this description, which we have
+paraphrased, and for the examples.
+
+
File: gawk.info, Node: Getting Accuracy, Next: Try To Round, Prev: Inexactness of computations, Up: FP Math Caution
16.4.2 Getting the Accuracy You Need
@@ -25477,7 +25593,8 @@ use them.
' AWK_STRNUM,'
' AWK_ARRAY,'
' AWK_SCALAR, /* opaque access to a variable */'
-' AWK_VALUE_COOKIE /* for updating a previously created value */'
+' AWK_VALUE_COOKIE, /* for updating a previously created value */'
+' AWK_BOOL'
'} awk_valtype_t;'
This 'enum' indicates the type of a value. It is used in the
following 'struct'.
@@ -25490,6 +25607,7 @@ use them.
' awk_array_t a;'
' awk_scalar_t scl;'
' awk_value_cookie_t vc;'
+' awk_bool_t b;'
' } u;'
'} awk_value_t;'
An "'awk' value." The 'val_type' member indicates what kind of
@@ -25505,6 +25623,7 @@ use them.
'#define array_cookie u.a'
'#define scalar_cookie u.scl'
'#define value_cookie u.vc'
+'#define bool_value u.b'
Using these macros makes accessing the fields of the 'awk_value_t'
more readable.
@@ -25815,6 +25934,11 @@ code would use them:
a 'char *' value pointing to data previously obtained from
'gawk_malloc()', 'gawk_calloc()', or 'gawk_realloc()'.
+'static inline awk_value_t *'
+'make_bool(awk_bool_t boolval, awk_value_t *result);'
+ This function creates a boolean value in the 'awk_value_t' variable
+ pointed to by 'result'.
+

File: gawk.info, Node: API Ownership of MPFR and GMP Values, Next: Registration Functions, Prev: Constructor Functions, Up: Extension API Description
@@ -26540,16 +26664,17 @@ summarized in *note Table 17.2: table-value-types-returned.
Type of Actual Value
--------------------------------------------------------------------------
- String Strnum Number Regex Array Undefined
--------------------------------------------------------------------------------
- String String String String String false false
- Strnum false Strnum Strnum false false false
- Number Number Number Number false false false
-Type Regex false false false Regex false false
-Requested Array false false false false Array false
- Scalar Scalar Scalar Scalar Scalar false false
- Undefined String Strnum Number Regex Array Undefined
- Value false false false false false false
+ String Strnum Number Regex Bool Array Undefined
+----------------------------------------------------------------------------------------
+ String String String String String String false false
+ Strnum false Strnum Strnum false false false false
+ Number Number Number Number false Number false false
+Type Regex false false false Regex false false false
+Requested Bool false false false false Bool false false
+ Array false false false false false Array false
+ Scalar Scalar Scalar Scalar Scalar Scalar false false
+ Undefined String Strnum Number Regex Bool Array Undefined
+ Value false false false false false false false
cookie
Table 17.2: API value types returned
@@ -33130,8 +33255,8 @@ Localization
Logical Expression
An expression using the operators for logic, AND, OR, and NOT,
- written '&&', '||', and '!' in 'awk'. Often called Boolean
- expressions, after the mathematician who pioneered this kind of
+ written '&&', '||', and '!' in 'awk'. Often called "Boolean
+ expressions", after the mathematician who pioneered this kind of
mathematical logic.
Lvalue
@@ -35288,6 +35413,7 @@ Index
* body, in loops: While Statement. (line 14)
* Boolean expressions: Boolean Ops. (line 6)
* Boolean expressions, as patterns: Expression Patterns. (line 39)
+* boolean function: Boolean Functions. (line 6)
* Bourne shell, quoting rules for: Quoting. (line 18)
* braces ({}), regexp operator: Regexp Operator Details.
(line 118)
@@ -36876,6 +37002,7 @@ Index
* metacharacters, escape sequences for: Escape Sequences. (line 140)
* metacharacters, in regular expressions: Regexp Operators. (line 6)
* minimum precision required by MPFR library: Auto-set. (line 279)
+* mkbool: Boolean Functions. (line 10)
* mktime: Time Functions. (line 25)
* modifiers, in format specifiers: Format Modifiers. (line 6)
* module, definition of: Global Namespace. (line 18)
@@ -38098,603 +38225,606 @@ Index

Tag Table:
Node: Top1200
-Node: Foreword344780
-Node: Foreword449222
-Node: Preface50754
-Ref: Preface-Footnote-153613
-Ref: Preface-Footnote-253722
-Ref: Preface-Footnote-353956
-Node: History54098
-Node: Names56450
-Ref: Names-Footnote-157554
-Node: This Manual57701
-Ref: This Manual-Footnote-164340
-Node: Conventions64440
-Node: Manual History66809
-Ref: Manual History-Footnote-169806
-Ref: Manual History-Footnote-269847
-Node: How To Contribute69921
-Node: Acknowledgments70847
-Node: Getting Started75784
-Node: Running gawk78223
-Node: One-shot79413
-Node: Read Terminal80676
-Node: Long82669
-Node: Executable Scripts84182
-Ref: Executable Scripts-Footnote-186815
-Node: Comments86918
-Node: Quoting89402
-Node: DOS Quoting94928
-Node: Sample Data Files96984
-Node: Very Simple99579
-Node: Two Rules105681
-Node: More Complex107566
-Node: Statements/Lines109898
-Ref: Statements/Lines-Footnote-1114382
-Node: Other Features114647
-Node: When115583
-Ref: When-Footnote-1117337
-Node: Intro Summary117402
-Node: Invoking Gawk118286
-Node: Command Line119800
-Node: Options120598
-Ref: Options-Footnote-1138512
-Ref: Options-Footnote-2138743
-Node: Other Arguments138768
-Node: Naming Standard Input142779
-Node: Environment Variables143989
-Node: AWKPATH Variable144547
-Ref: AWKPATH Variable-Footnote-1147959
-Ref: AWKPATH Variable-Footnote-2147993
-Node: AWKLIBPATH Variable148364
-Ref: AWKLIBPATH Variable-Footnote-1150061
-Node: Other Environment Variables150436
-Node: Exit Status154257
-Node: Include Files154934
-Node: Loading Shared Libraries158624
-Node: Obsolete160052
-Node: Undocumented160744
-Node: Invoking Summary161041
-Node: Regexp163882
-Node: Regexp Usage165336
-Node: Escape Sequences167373
-Node: Regexp Operators173614
-Node: Regexp Operator Details174099
-Ref: Regexp Operator Details-Footnote-1181463
-Node: Interval Expressions181610
-Ref: Interval Expressions-Footnote-1183031
-Node: Bracket Expressions183129
-Ref: table-char-classes185605
-Node: Leftmost Longest188931
-Node: Computed Regexps190234
-Node: GNU Regexp Operators193661
-Node: Case-sensitivity197398
-Ref: Case-sensitivity-Footnote-1200264
-Ref: Case-sensitivity-Footnote-2200499
-Node: Regexp Summary200607
-Node: Reading Files202073
-Node: Records204342
-Node: awk split records205417
-Node: gawk split records210117
-Ref: gawk split records-Footnote-1215191
-Node: Fields215228
-Node: Nonconstant Fields217969
-Ref: Nonconstant Fields-Footnote-1220205
-Node: Changing Fields220409
-Node: Field Separators226440
-Node: Default Field Splitting229138
-Node: Regexp Field Splitting230256
-Node: Single Character Fields233933
-Node: Command Line Field Separator234993
-Node: Full Line Fields238211
-Ref: Full Line Fields-Footnote-1239733
-Ref: Full Line Fields-Footnote-2239779
-Node: Field Splitting Summary239880
-Node: Constant Size241954
-Node: Fixed width data242686
-Node: Skipping intervening246153
-Node: Allowing trailing data246951
-Node: Fields with fixed data247988
-Node: Splitting By Content249506
-Ref: Splitting By Content-Footnote-1253289
-Node: More CSV253452
-Node: Testing field creation255044
-Node: Multiple Line256669
-Node: Getline262946
-Node: Plain Getline265415
-Node: Getline/Variable267988
-Node: Getline/File269139
-Node: Getline/Variable/File270527
-Ref: Getline/Variable/File-Footnote-1272132
-Node: Getline/Pipe272220
-Node: Getline/Variable/Pipe274924
-Node: Getline/Coprocess276059
-Node: Getline/Variable/Coprocess277326
-Node: Getline Notes278068
-Node: Getline Summary280865
-Ref: table-getline-variants281289
-Node: Read Timeout282037
-Ref: Read Timeout-Footnote-1285943
-Node: Retrying Input286001
-Node: Command-line directories287200
-Node: Input Summary288106
-Node: Input Exercises291278
-Node: Printing291712
-Node: Print293546
-Node: Print Examples295003
-Node: Output Separators297783
-Node: OFMT299800
-Node: Printf301156
-Node: Basic Printf301941
-Node: Control Letters303515
-Node: Format Modifiers308679
-Node: Printf Examples314694
-Node: Redirection317180
-Node: Special FD324021
-Ref: Special FD-Footnote-1327189
-Node: Special Files327263
-Node: Other Inherited Files327880
-Node: Special Network328881
-Node: Special Caveats329741
-Node: Close Files And Pipes330690
-Ref: table-close-pipe-return-values337597
-Ref: Close Files And Pipes-Footnote-1338410
-Ref: Close Files And Pipes-Footnote-2338558
-Node: Nonfatal338710
-Node: Output Summary341048
-Node: Output Exercises342270
-Node: Expressions342949
-Node: Values344137
-Node: Constants344815
-Node: Scalar Constants345506
-Ref: Scalar Constants-Footnote-1348016
-Node: Nondecimal-numbers348266
-Node: Regexp Constants351267
-Node: Using Constant Regexps351793
-Node: Standard Regexp Constants352415
-Node: Strong Regexp Constants355603
-Node: Variables358615
-Node: Using Variables359272
-Node: Assignment Options361182
-Node: Conversion363653
-Node: Strings And Numbers364177
-Ref: Strings And Numbers-Footnote-1367240
-Node: Locale influences conversions367349
-Ref: table-locale-affects370107
-Node: All Operators370725
-Node: Arithmetic Ops371354
-Node: Concatenation374070
-Ref: Concatenation-Footnote-1376917
-Node: Assignment Ops377024
-Ref: table-assign-ops382015
-Node: Increment Ops383328
-Node: Truth Values and Conditions386788
-Node: Truth Values387862
-Node: Typing and Comparison388910
-Node: Variable Typing389730
-Ref: Variable Typing-Footnote-1396193
-Ref: Variable Typing-Footnote-2396265
-Node: Comparison Operators396342
-Ref: table-relational-ops396761
-Node: POSIX String Comparison400256
-Ref: POSIX String Comparison-Footnote-1401951
-Ref: POSIX String Comparison-Footnote-2402090
-Node: Boolean Ops402174
-Ref: Boolean Ops-Footnote-1406656
-Node: Conditional Exp406748
-Node: Function Calls408484
-Node: Precedence412361
-Node: Locales416020
-Node: Expressions Summary417652
-Node: Patterns and Actions420225
-Node: Pattern Overview421345
-Node: Regexp Patterns423022
-Node: Expression Patterns423564
-Node: Ranges427345
-Node: BEGIN/END430453
-Node: Using BEGIN/END431214
-Ref: Using BEGIN/END-Footnote-1433968
-Node: I/O And BEGIN/END434074
-Node: BEGINFILE/ENDFILE436387
-Node: Empty439618
-Node: Using Shell Variables439935
-Node: Action Overview442209
-Node: Statements444534
-Node: If Statement446382
-Node: While Statement447877
-Node: Do Statement449905
-Node: For Statement451053
-Node: Switch Statement454224
-Node: Break Statement456665
-Node: Continue Statement458757
-Node: Next Statement460584
-Node: Nextfile Statement462967
-Node: Exit Statement465656
-Node: Built-in Variables468059
-Node: User-modified469192
-Node: Auto-set476959
-Ref: Auto-set-Footnote-1493766
-Ref: Auto-set-Footnote-2493972
-Node: ARGC and ARGV494028
-Node: Pattern Action Summary498241
-Node: Arrays500671
-Node: Array Basics502000
-Node: Array Intro502844
-Ref: figure-array-elements504819
-Ref: Array Intro-Footnote-1507523
-Node: Reference to Elements507651
-Node: Assigning Elements510115
-Node: Array Example510606
-Node: Scanning an Array512365
-Node: Controlling Scanning515387
-Ref: Controlling Scanning-Footnote-1521843
-Node: Numeric Array Subscripts522159
-Node: Uninitialized Subscripts524343
-Node: Delete525962
-Ref: Delete-Footnote-1528714
-Node: Multidimensional528771
-Node: Multiscanning531866
-Node: Arrays of Arrays533457
-Node: Arrays Summary538225
-Node: Functions540318
-Node: Built-in541356
-Node: Calling Built-in542437
-Node: Numeric Functions544433
-Ref: Numeric Functions-Footnote-1548461
-Ref: Numeric Functions-Footnote-2549109
-Ref: Numeric Functions-Footnote-3549157
-Node: String Functions549429
-Ref: String Functions-Footnote-1573570
-Ref: String Functions-Footnote-2573698
-Ref: String Functions-Footnote-3573946
-Node: Gory Details574033
-Ref: table-sub-escapes575824
-Ref: table-sub-proposed577343
-Ref: table-posix-sub578706
-Ref: table-gensub-escapes580247
-Ref: Gory Details-Footnote-1581070
-Node: I/O Functions581224
-Ref: table-system-return-values587678
-Ref: I/O Functions-Footnote-1589758
-Ref: I/O Functions-Footnote-2589906
-Node: Time Functions590026
-Ref: Time Functions-Footnote-1600697
-Ref: Time Functions-Footnote-2600765
-Ref: Time Functions-Footnote-3600923
-Ref: Time Functions-Footnote-4601034
-Ref: Time Functions-Footnote-5601146
-Ref: Time Functions-Footnote-6601373
-Node: Bitwise Functions601639
-Ref: table-bitwise-ops602233
-Ref: Bitwise Functions-Footnote-1608296
-Ref: Bitwise Functions-Footnote-2608469
-Node: Type Functions608660
-Node: I18N Functions611523
-Node: User-defined613174
-Node: Definition Syntax613986
-Ref: Definition Syntax-Footnote-1619680
-Node: Function Example619751
-Ref: Function Example-Footnote-1622673
-Node: Function Calling622695
-Node: Calling A Function623283
-Node: Variable Scope624241
-Node: Pass By Value/Reference627235
-Node: Function Caveats629879
-Ref: Function Caveats-Footnote-1631926
-Node: Return Statement632046
-Node: Dynamic Typing635025
-Node: Indirect Calls635955
-Ref: Indirect Calls-Footnote-1646207
-Node: Functions Summary646335
-Node: Library Functions649040
-Ref: Library Functions-Footnote-1652647
-Ref: Library Functions-Footnote-2652790
-Node: Library Names652961
-Ref: Library Names-Footnote-1656628
-Ref: Library Names-Footnote-2656851
-Node: General Functions656937
-Node: Strtonum Function658040
-Node: Assert Function661062
-Node: Round Function664388
-Node: Cliff Random Function665928
-Node: Ordinal Functions666944
-Ref: Ordinal Functions-Footnote-1670007
-Ref: Ordinal Functions-Footnote-2670259
-Node: Join Function670469
-Ref: Join Function-Footnote-1672239
-Node: Getlocaltime Function672439
-Node: Readfile Function676181
-Node: Shell Quoting678158
-Node: Data File Management679559
-Node: Filetrans Function680191
-Node: Rewind Function684287
-Node: File Checking686196
-Ref: File Checking-Footnote-1687530
-Node: Empty Files687731
-Node: Ignoring Assigns689710
-Node: Getopt Function691260
-Ref: Getopt Function-Footnote-1706471
-Node: Passwd Functions706671
-Ref: Passwd Functions-Footnote-1715510
-Node: Group Functions715598
-Ref: Group Functions-Footnote-1723496
-Node: Walking Arrays723703
-Node: Library Functions Summary726711
-Node: Library Exercises728117
-Node: Sample Programs728582
-Node: Running Examples729352
-Node: Clones730080
-Node: Cut Program731304
-Node: Egrep Program741444
-Node: Id Program750445
-Node: Split Program760392
-Ref: Split Program-Footnote-1770282
-Node: Tee Program770455
-Node: Uniq Program773245
-Node: Wc Program780833
-Node: Bytes vs. Characters781220
-Node: Using extensions782768
-Node: wc program783522
-Node: Miscellaneous Programs788387
-Node: Dupword Program789600
-Node: Alarm Program791630
-Node: Translate Program796485
-Ref: Translate Program-Footnote-1801050
-Node: Labels Program801320
-Ref: Labels Program-Footnote-1804671
-Node: Word Sorting804755
-Node: History Sorting808827
-Node: Extract Program811052
-Node: Simple Sed819106
-Node: Igawk Program822180
-Ref: Igawk Program-Footnote-1836511
-Ref: Igawk Program-Footnote-2836713
-Ref: Igawk Program-Footnote-3836835
-Node: Anagram Program836950
-Node: Signature Program840012
-Node: Programs Summary841259
-Node: Programs Exercises842473
-Ref: Programs Exercises-Footnote-1846603
-Node: Advanced Features846689
-Node: Nondecimal Data848756
-Node: Array Sorting850347
-Node: Controlling Array Traversal851047
-Ref: Controlling Array Traversal-Footnote-1859415
-Node: Array Sorting Functions859533
-Ref: Array Sorting Functions-Footnote-1864624
-Node: Two-way I/O864820
-Ref: Two-way I/O-Footnote-1872541
-Ref: Two-way I/O-Footnote-2872728
-Node: TCP/IP Networking872810
-Node: Profiling875928
-Node: Extension Philosophy885237
-Node: Advanced Features Summary886716
-Node: Internationalization888731
-Node: I18N and L10N890405
-Node: Explaining gettext891092
-Ref: Explaining gettext-Footnote-1896984
-Ref: Explaining gettext-Footnote-2897169
-Node: Programmer i18n897334
-Ref: Programmer i18n-Footnote-1902283
-Node: Translator i18n902332
-Node: String Extraction903126
-Ref: String Extraction-Footnote-1904258
-Node: Printf Ordering904344
-Ref: Printf Ordering-Footnote-1907130
-Node: I18N Portability907194
-Ref: I18N Portability-Footnote-1909650
-Node: I18N Example909713
-Ref: I18N Example-Footnote-1912988
-Ref: I18N Example-Footnote-2913061
-Node: Gawk I18N913170
-Node: I18N Summary913819
-Node: Debugger915160
-Node: Debugging916160
-Node: Debugging Concepts916601
-Node: Debugging Terms918410
-Node: Awk Debugging920985
-Ref: Awk Debugging-Footnote-1921930
-Node: Sample Debugging Session922062
-Node: Debugger Invocation922596
-Node: Finding The Bug923982
-Node: List of Debugger Commands930456
-Node: Breakpoint Control931789
-Node: Debugger Execution Control935483
-Node: Viewing And Changing Data938845
-Node: Execution Stack942386
-Node: Debugger Info944023
-Node: Miscellaneous Debugger Commands948094
-Node: Readline Support953156
-Node: Limitations954052
-Node: Debugging Summary956606
-Node: Namespaces957885
-Node: Global Namespace958996
-Node: Qualified Names960394
-Node: Default Namespace961393
-Node: Changing The Namespace962134
-Node: Naming Rules963748
-Node: Internal Name Management965596
-Node: Namespace Example966638
-Node: Namespace And Features969200
-Node: Namespace Summary970635
-Node: Arbitrary Precision Arithmetic972112
-Node: Computer Arithmetic973599
-Ref: table-numeric-ranges977365
-Ref: table-floating-point-ranges977858
-Ref: Computer Arithmetic-Footnote-1978516
-Node: Math Definitions978573
-Ref: table-ieee-formats981889
-Ref: Math Definitions-Footnote-1982492
-Node: MPFR features982597
-Node: FP Math Caution984315
-Ref: FP Math Caution-Footnote-1985387
-Node: Inexactness of computations985756
-Node: Inexact representation986716
-Node: Comparing FP Values988076
-Node: Errors accumulate989317
-Node: Getting Accuracy990750
-Node: Try To Round993460
-Node: Setting precision994359
-Ref: table-predefined-precision-strings995056
-Node: Setting the rounding mode996886
-Ref: table-gawk-rounding-modes997260
-Ref: Setting the rounding mode-Footnote-11001191
-Node: Arbitrary Precision Integers1001370
-Ref: Arbitrary Precision Integers-Footnote-11004545
-Node: Checking for MPFR1004694
-Node: POSIX Floating Point Problems1006168
-Ref: POSIX Floating Point Problems-Footnote-11010453
-Node: Floating point summary1010491
-Node: Dynamic Extensions1012681
-Node: Extension Intro1014234
-Node: Plugin License1015500
-Node: Extension Mechanism Outline1016297
-Ref: figure-load-extension1016736
-Ref: figure-register-new-function1018301
-Ref: figure-call-new-function1019393
-Node: Extension API Description1021455
-Node: Extension API Functions Introduction1023168
-Ref: table-api-std-headers1025004
-Node: General Data Types1029253
-Ref: General Data Types-Footnote-11037883
-Node: Memory Allocation Functions1038182
-Ref: Memory Allocation Functions-Footnote-11042683
-Node: Constructor Functions1042782
-Node: API Ownership of MPFR and GMP Values1046248
-Node: Registration Functions1047561
-Node: Extension Functions1048261
-Node: Exit Callback Functions1053583
-Node: Extension Version String1054833
-Node: Input Parsers1055496
-Node: Output Wrappers1068217
-Node: Two-way processors1072729
-Node: Printing Messages1074994
-Ref: Printing Messages-Footnote-11076165
-Node: Updating ERRNO1076318
-Node: Requesting Values1077057
-Ref: table-value-types-returned1077794
-Node: Accessing Parameters1078730
-Node: Symbol Table Access1079967
-Node: Symbol table by name1080479
-Ref: Symbol table by name-Footnote-11083503
-Node: Symbol table by cookie1083631
-Ref: Symbol table by cookie-Footnote-11087816
-Node: Cached values1087880
-Ref: Cached values-Footnote-11091416
-Node: Array Manipulation1091569
-Ref: Array Manipulation-Footnote-11092660
-Node: Array Data Types1092697
-Ref: Array Data Types-Footnote-11095355
-Node: Array Functions1095447
-Node: Flattening Arrays1099945
-Node: Creating Arrays1106921
-Node: Redirection API1111688
-Node: Extension API Variables1114521
-Node: Extension Versioning1115232
-Ref: gawk-api-version1115661
-Node: Extension GMP/MPFR Versioning1117392
-Node: Extension API Informational Variables1119020
-Node: Extension API Boilerplate1120093
-Node: Changes from API V11124067
-Node: Finding Extensions1125639
-Node: Extension Example1126198
-Node: Internal File Description1126996
-Node: Internal File Ops1131076
-Ref: Internal File Ops-Footnote-11142426
-Node: Using Internal File Ops1142566
-Ref: Using Internal File Ops-Footnote-11144949
-Node: Extension Samples1145223
-Node: Extension Sample File Functions1146752
-Node: Extension Sample Fnmatch1154401
-Node: Extension Sample Fork1155888
-Node: Extension Sample Inplace1157106
-Node: Extension Sample Ord1160732
-Node: Extension Sample Readdir1161568
-Ref: table-readdir-file-types1162457
-Node: Extension Sample Revout1163524
-Node: Extension Sample Rev2way1164113
-Node: Extension Sample Read write array1164853
-Node: Extension Sample Readfile1166795
-Node: Extension Sample Time1167890
-Node: Extension Sample API Tests1169642
-Node: gawkextlib1170134
-Node: Extension summary1173052
-Node: Extension Exercises1176754
-Node: Language History1177996
-Node: V7/SVR3.11179652
-Node: SVR41181804
-Node: POSIX1183238
-Node: BTL1184619
-Node: POSIX/GNU1185348
-Node: Feature History1191126
-Node: Common Extensions1208301
-Node: Ranges and Locales1209584
-Ref: Ranges and Locales-Footnote-11214200
-Ref: Ranges and Locales-Footnote-21214227
-Ref: Ranges and Locales-Footnote-31214462
-Node: Contributors1214685
-Node: History summary1220682
-Node: Installation1222062
-Node: Gawk Distribution1223006
-Node: Getting1223490
-Node: Extracting1224453
-Node: Distribution contents1226091
-Node: Unix Installation1232571
-Node: Quick Installation1233253
-Node: Shell Startup Files1235667
-Node: Additional Configuration Options1236756
-Node: Configuration Philosophy1239071
-Node: Non-Unix Installation1241440
-Node: PC Installation1241900
-Node: PC Binary Installation1242738
-Node: PC Compiling1243173
-Node: PC Using1244290
-Node: Cygwin1247843
-Node: MSYS1249067
-Node: VMS Installation1249669
-Node: VMS Compilation1250460
-Ref: VMS Compilation-Footnote-11251689
-Node: VMS Dynamic Extensions1251747
-Node: VMS Installation Details1253432
-Node: VMS Running1255685
-Node: VMS GNV1259964
-Node: VMS Old Gawk1260699
-Node: Bugs1261170
-Node: Bug address1261833
-Node: Usenet1264815
-Node: Maintainers1265819
-Node: Other Versions1267004
-Node: Installation summary1274869
-Node: Notes1276078
-Node: Compatibility Mode1276872
-Node: Additions1277654
-Node: Accessing The Source1278579
-Node: Adding Code1280016
-Node: New Ports1286235
-Node: Derived Files1290610
-Ref: Derived Files-Footnote-11296270
-Ref: Derived Files-Footnote-21296305
-Ref: Derived Files-Footnote-31296903
-Node: Future Extensions1297017
-Node: Implementation Limitations1297675
-Node: Extension Design1298885
-Node: Old Extension Problems1300029
-Ref: Old Extension Problems-Footnote-11301547
-Node: Extension New Mechanism Goals1301604
-Ref: Extension New Mechanism Goals-Footnote-11304968
-Node: Extension Other Design Decisions1305157
-Node: Extension Future Growth1307270
-Node: Notes summary1307876
-Node: Basic Concepts1309034
-Node: Basic High Level1309715
-Ref: figure-general-flow1309997
-Ref: figure-process-flow1310682
-Ref: Basic High Level-Footnote-11313983
-Node: Basic Data Typing1314168
-Node: Glossary1317496
-Node: Copying1349381
-Node: GNU Free Documentation License1386924
-Node: Index1412044
+Node: Foreword345051
+Node: Foreword449493
+Node: Preface51025
+Ref: Preface-Footnote-153884
+Ref: Preface-Footnote-253993
+Ref: Preface-Footnote-354227
+Node: History54369
+Node: Names56721
+Ref: Names-Footnote-157825
+Node: This Manual57972
+Ref: This Manual-Footnote-164611
+Node: Conventions64711
+Node: Manual History67080
+Ref: Manual History-Footnote-170077
+Ref: Manual History-Footnote-270118
+Node: How To Contribute70192
+Node: Acknowledgments71118
+Node: Getting Started76055
+Node: Running gawk78494
+Node: One-shot79684
+Node: Read Terminal80947
+Node: Long82940
+Node: Executable Scripts84453
+Ref: Executable Scripts-Footnote-187086
+Node: Comments87189
+Node: Quoting89673
+Node: DOS Quoting95199
+Node: Sample Data Files97255
+Node: Very Simple99850
+Node: Two Rules105952
+Node: More Complex107837
+Node: Statements/Lines110169
+Ref: Statements/Lines-Footnote-1114653
+Node: Other Features114918
+Node: When115854
+Ref: When-Footnote-1117608
+Node: Intro Summary117673
+Node: Invoking Gawk118557
+Node: Command Line120071
+Node: Options120869
+Ref: Options-Footnote-1138783
+Ref: Options-Footnote-2139014
+Node: Other Arguments139039
+Node: Naming Standard Input143050
+Node: Environment Variables144260
+Node: AWKPATH Variable144818
+Ref: AWKPATH Variable-Footnote-1148230
+Ref: AWKPATH Variable-Footnote-2148264
+Node: AWKLIBPATH Variable148635
+Ref: AWKLIBPATH Variable-Footnote-1150332
+Node: Other Environment Variables150707
+Node: Exit Status154659
+Node: Include Files155336
+Node: Loading Shared Libraries159026
+Node: Obsolete160454
+Node: Undocumented161146
+Node: Invoking Summary161443
+Node: Regexp164284
+Node: Regexp Usage165738
+Node: Escape Sequences167775
+Node: Regexp Operators174016
+Node: Regexp Operator Details174501
+Ref: Regexp Operator Details-Footnote-1181865
+Node: Interval Expressions182012
+Ref: Interval Expressions-Footnote-1183433
+Node: Bracket Expressions183531
+Ref: table-char-classes186007
+Node: Leftmost Longest189333
+Node: Computed Regexps190636
+Node: GNU Regexp Operators194063
+Node: Case-sensitivity197800
+Ref: Case-sensitivity-Footnote-1200666
+Ref: Case-sensitivity-Footnote-2200901
+Node: Regexp Summary201009
+Node: Reading Files202475
+Node: Records204744
+Node: awk split records205819
+Node: gawk split records210519
+Ref: gawk split records-Footnote-1215593
+Node: Fields215630
+Node: Nonconstant Fields218371
+Ref: Nonconstant Fields-Footnote-1220607
+Node: Changing Fields220811
+Node: Field Separators226842
+Node: Default Field Splitting229540
+Node: Regexp Field Splitting230658
+Node: Single Character Fields234335
+Node: Command Line Field Separator235395
+Node: Full Line Fields238613
+Ref: Full Line Fields-Footnote-1240135
+Ref: Full Line Fields-Footnote-2240181
+Node: Field Splitting Summary240282
+Node: Constant Size242356
+Node: Fixed width data243088
+Node: Skipping intervening246555
+Node: Allowing trailing data247353
+Node: Fields with fixed data248390
+Node: Splitting By Content249908
+Ref: Splitting By Content-Footnote-1253691
+Node: More CSV253854
+Node: Testing field creation255446
+Node: Multiple Line257071
+Node: Getline263348
+Node: Plain Getline265817
+Node: Getline/Variable268390
+Node: Getline/File269541
+Node: Getline/Variable/File270929
+Ref: Getline/Variable/File-Footnote-1272534
+Node: Getline/Pipe272622
+Node: Getline/Variable/Pipe275326
+Node: Getline/Coprocess276461
+Node: Getline/Variable/Coprocess277728
+Node: Getline Notes278470
+Node: Getline Summary281267
+Ref: table-getline-variants281691
+Node: Read Timeout282439
+Ref: Read Timeout-Footnote-1286345
+Node: Retrying Input286403
+Node: Command-line directories287602
+Node: Input Summary288508
+Node: Input Exercises291680
+Node: Printing292114
+Node: Print293948
+Node: Print Examples295405
+Node: Output Separators298185
+Node: OFMT300202
+Node: Printf301558
+Node: Basic Printf302343
+Node: Control Letters303917
+Node: Format Modifiers309079
+Node: Printf Examples315094
+Node: Redirection317580
+Node: Special FD324421
+Ref: Special FD-Footnote-1327589
+Node: Special Files327663
+Node: Other Inherited Files328280
+Node: Special Network329281
+Node: Special Caveats330141
+Node: Close Files And Pipes331090
+Ref: table-close-pipe-return-values337997
+Ref: Close Files And Pipes-Footnote-1338810
+Ref: Close Files And Pipes-Footnote-2338958
+Node: Nonfatal339110
+Node: Output Summary341448
+Node: Output Exercises342670
+Node: Expressions343349
+Node: Values344537
+Node: Constants345215
+Node: Scalar Constants345906
+Ref: Scalar Constants-Footnote-1348416
+Node: Nondecimal-numbers348666
+Node: Regexp Constants351667
+Node: Using Constant Regexps352193
+Node: Standard Regexp Constants352815
+Node: Strong Regexp Constants356003
+Node: Variables359015
+Node: Using Variables359672
+Node: Assignment Options361582
+Node: Conversion364053
+Node: Strings And Numbers364577
+Ref: Strings And Numbers-Footnote-1367640
+Node: Locale influences conversions367749
+Ref: table-locale-affects370507
+Node: All Operators371125
+Node: Arithmetic Ops371754
+Node: Concatenation374470
+Ref: Concatenation-Footnote-1377317
+Node: Assignment Ops377424
+Ref: table-assign-ops382415
+Node: Increment Ops383728
+Node: Truth Values and Conditions387188
+Node: Truth Values388262
+Node: Typing and Comparison389310
+Node: Variable Typing390130
+Ref: Variable Typing-Footnote-1396593
+Ref: Variable Typing-Footnote-2396665
+Node: Comparison Operators396742
+Ref: table-relational-ops397161
+Node: POSIX String Comparison400656
+Ref: POSIX String Comparison-Footnote-1402351
+Ref: POSIX String Comparison-Footnote-2402490
+Node: Boolean Ops402574
+Ref: Boolean Ops-Footnote-1407056
+Node: Conditional Exp407148
+Node: Function Calls408884
+Node: Precedence412761
+Node: Locales416420
+Node: Expressions Summary418052
+Node: Patterns and Actions420625
+Node: Pattern Overview421745
+Node: Regexp Patterns423422
+Node: Expression Patterns423964
+Node: Ranges427745
+Node: BEGIN/END430853
+Node: Using BEGIN/END431614
+Ref: Using BEGIN/END-Footnote-1434368
+Node: I/O And BEGIN/END434474
+Node: BEGINFILE/ENDFILE436787
+Node: Empty440018
+Node: Using Shell Variables440335
+Node: Action Overview442609
+Node: Statements444934
+Node: If Statement446782
+Node: While Statement448277
+Node: Do Statement450305
+Node: For Statement451453
+Node: Switch Statement454624
+Node: Break Statement457065
+Node: Continue Statement459157
+Node: Next Statement460984
+Node: Nextfile Statement463367
+Node: Exit Statement466056
+Node: Built-in Variables468459
+Node: User-modified469592
+Node: Auto-set477359
+Ref: Auto-set-Footnote-1494166
+Ref: Auto-set-Footnote-2494372
+Node: ARGC and ARGV494428
+Node: Pattern Action Summary498641
+Node: Arrays501071
+Node: Array Basics502400
+Node: Array Intro503244
+Ref: figure-array-elements505219
+Ref: Array Intro-Footnote-1507923
+Node: Reference to Elements508051
+Node: Assigning Elements510515
+Node: Array Example511006
+Node: Scanning an Array512765
+Node: Controlling Scanning515787
+Ref: Controlling Scanning-Footnote-1522243
+Node: Numeric Array Subscripts522559
+Node: Uninitialized Subscripts524743
+Node: Delete526362
+Ref: Delete-Footnote-1529114
+Node: Multidimensional529171
+Node: Multiscanning532266
+Node: Arrays of Arrays533857
+Node: Arrays Summary538625
+Node: Functions540718
+Node: Built-in541756
+Node: Calling Built-in542909
+Node: Boolean Functions544905
+Node: Numeric Functions545459
+Ref: Numeric Functions-Footnote-1549486
+Ref: Numeric Functions-Footnote-2550134
+Ref: Numeric Functions-Footnote-3550182
+Node: String Functions550454
+Ref: String Functions-Footnote-1574595
+Ref: String Functions-Footnote-2574723
+Ref: String Functions-Footnote-3574971
+Node: Gory Details575058
+Ref: table-sub-escapes576849
+Ref: table-sub-proposed578368
+Ref: table-posix-sub579731
+Ref: table-gensub-escapes581272
+Ref: Gory Details-Footnote-1582095
+Node: I/O Functions582249
+Ref: table-system-return-values588703
+Ref: I/O Functions-Footnote-1590783
+Ref: I/O Functions-Footnote-2590931
+Node: Time Functions591051
+Ref: Time Functions-Footnote-1601722
+Ref: Time Functions-Footnote-2601790
+Ref: Time Functions-Footnote-3601948
+Ref: Time Functions-Footnote-4602059
+Ref: Time Functions-Footnote-5602171
+Ref: Time Functions-Footnote-6602398
+Node: Bitwise Functions602664
+Ref: table-bitwise-ops603258
+Ref: Bitwise Functions-Footnote-1609321
+Ref: Bitwise Functions-Footnote-2609494
+Node: Type Functions609685
+Node: I18N Functions612639
+Node: User-defined614290
+Node: Definition Syntax615102
+Ref: Definition Syntax-Footnote-1620796
+Node: Function Example620867
+Ref: Function Example-Footnote-1623789
+Node: Function Calling623811
+Node: Calling A Function624399
+Node: Variable Scope625357
+Node: Pass By Value/Reference628351
+Node: Function Caveats630995
+Ref: Function Caveats-Footnote-1633042
+Node: Return Statement633162
+Node: Dynamic Typing636141
+Node: Indirect Calls637071
+Ref: Indirect Calls-Footnote-1647326
+Node: Functions Summary647454
+Node: Library Functions650159
+Ref: Library Functions-Footnote-1653766
+Ref: Library Functions-Footnote-2653909
+Node: Library Names654080
+Ref: Library Names-Footnote-1657747
+Ref: Library Names-Footnote-2657970
+Node: General Functions658056
+Node: Strtonum Function659159
+Node: Assert Function662181
+Node: Round Function665507
+Node: Cliff Random Function667047
+Node: Ordinal Functions668063
+Ref: Ordinal Functions-Footnote-1671126
+Ref: Ordinal Functions-Footnote-2671378
+Node: Join Function671588
+Ref: Join Function-Footnote-1673358
+Node: Getlocaltime Function673558
+Node: Readfile Function677300
+Node: Shell Quoting679277
+Node: Data File Management680678
+Node: Filetrans Function681310
+Node: Rewind Function685406
+Node: File Checking687315
+Ref: File Checking-Footnote-1688649
+Node: Empty Files688850
+Node: Ignoring Assigns690829
+Node: Getopt Function692379
+Ref: Getopt Function-Footnote-1707590
+Node: Passwd Functions707790
+Ref: Passwd Functions-Footnote-1716629
+Node: Group Functions716717
+Ref: Group Functions-Footnote-1724615
+Node: Walking Arrays724822
+Node: Library Functions Summary727830
+Node: Library Exercises729236
+Node: Sample Programs729701
+Node: Running Examples730471
+Node: Clones731199
+Node: Cut Program732423
+Node: Egrep Program742563
+Node: Id Program751564
+Node: Split Program761511
+Ref: Split Program-Footnote-1771401
+Node: Tee Program771574
+Node: Uniq Program774364
+Node: Wc Program781952
+Node: Bytes vs. Characters782339
+Node: Using extensions783887
+Node: wc program784641
+Node: Miscellaneous Programs789506
+Node: Dupword Program790719
+Node: Alarm Program792749
+Node: Translate Program797604
+Ref: Translate Program-Footnote-1802169
+Node: Labels Program802439
+Ref: Labels Program-Footnote-1805790
+Node: Word Sorting805874
+Node: History Sorting809946
+Node: Extract Program812171
+Node: Simple Sed820225
+Node: Igawk Program823299
+Ref: Igawk Program-Footnote-1837630
+Ref: Igawk Program-Footnote-2837832
+Ref: Igawk Program-Footnote-3837954
+Node: Anagram Program838069
+Node: Signature Program841131
+Node: Programs Summary842378
+Node: Programs Exercises843592
+Ref: Programs Exercises-Footnote-1847722
+Node: Advanced Features847808
+Node: Nondecimal Data849939
+Node: Boolean Typed Values851537
+Node: Array Sorting853418
+Node: Controlling Array Traversal854123
+Ref: Controlling Array Traversal-Footnote-1862491
+Node: Array Sorting Functions862609
+Ref: Array Sorting Functions-Footnote-1867700
+Node: Two-way I/O867896
+Ref: Two-way I/O-Footnote-1875617
+Ref: Two-way I/O-Footnote-2875804
+Node: TCP/IP Networking875886
+Node: Profiling879004
+Node: Extension Philosophy888313
+Node: Advanced Features Summary889792
+Node: Internationalization891807
+Node: I18N and L10N893481
+Node: Explaining gettext894168
+Ref: Explaining gettext-Footnote-1900060
+Ref: Explaining gettext-Footnote-2900245
+Node: Programmer i18n900410
+Ref: Programmer i18n-Footnote-1905359
+Node: Translator i18n905408
+Node: String Extraction906202
+Ref: String Extraction-Footnote-1907334
+Node: Printf Ordering907420
+Ref: Printf Ordering-Footnote-1910206
+Node: I18N Portability910270
+Ref: I18N Portability-Footnote-1912726
+Node: I18N Example912789
+Ref: I18N Example-Footnote-1916064
+Ref: I18N Example-Footnote-2916137
+Node: Gawk I18N916246
+Node: I18N Summary916895
+Node: Debugger918236
+Node: Debugging919236
+Node: Debugging Concepts919677
+Node: Debugging Terms921486
+Node: Awk Debugging924061
+Ref: Awk Debugging-Footnote-1925006
+Node: Sample Debugging Session925138
+Node: Debugger Invocation925672
+Node: Finding The Bug927058
+Node: List of Debugger Commands933532
+Node: Breakpoint Control934865
+Node: Debugger Execution Control938559
+Node: Viewing And Changing Data941921
+Node: Execution Stack945462
+Node: Debugger Info947099
+Node: Miscellaneous Debugger Commands951170
+Node: Readline Support956232
+Node: Limitations957128
+Node: Debugging Summary959682
+Node: Namespaces960961
+Node: Global Namespace962072
+Node: Qualified Names963470
+Node: Default Namespace964469
+Node: Changing The Namespace965210
+Node: Naming Rules966824
+Node: Internal Name Management968672
+Node: Namespace Example969714
+Node: Namespace And Features972276
+Node: Namespace Summary973711
+Node: Arbitrary Precision Arithmetic975188
+Node: Computer Arithmetic976675
+Ref: table-numeric-ranges980441
+Ref: table-floating-point-ranges980934
+Ref: Computer Arithmetic-Footnote-1981592
+Node: Math Definitions981649
+Ref: table-ieee-formats984625
+Node: MPFR features985192
+Node: FP Math Caution986910
+Ref: FP Math Caution-Footnote-1987982
+Node: Inexactness of computations988351
+Node: Inexact representation989382
+Node: Comparing FP Values990742
+Node: Errors accumulate991983
+Node: Strange values993439
+Ref: Strange values-Footnote-1996027
+Node: Getting Accuracy996132
+Node: Try To Round998842
+Node: Setting precision999741
+Ref: table-predefined-precision-strings1000438
+Node: Setting the rounding mode1002268
+Ref: table-gawk-rounding-modes1002642
+Ref: Setting the rounding mode-Footnote-11006573
+Node: Arbitrary Precision Integers1006752
+Ref: Arbitrary Precision Integers-Footnote-11009927
+Node: Checking for MPFR1010076
+Node: POSIX Floating Point Problems1011550
+Ref: POSIX Floating Point Problems-Footnote-11015835
+Node: Floating point summary1015873
+Node: Dynamic Extensions1018063
+Node: Extension Intro1019616
+Node: Plugin License1020882
+Node: Extension Mechanism Outline1021679
+Ref: figure-load-extension1022118
+Ref: figure-register-new-function1023683
+Ref: figure-call-new-function1024775
+Node: Extension API Description1026837
+Node: Extension API Functions Introduction1028550
+Ref: table-api-std-headers1030386
+Node: General Data Types1034635
+Ref: General Data Types-Footnote-11043341
+Node: Memory Allocation Functions1043640
+Ref: Memory Allocation Functions-Footnote-11048141
+Node: Constructor Functions1048240
+Node: API Ownership of MPFR and GMP Values1051893
+Node: Registration Functions1053206
+Node: Extension Functions1053906
+Node: Exit Callback Functions1059228
+Node: Extension Version String1060478
+Node: Input Parsers1061141
+Node: Output Wrappers1073862
+Node: Two-way processors1078374
+Node: Printing Messages1080639
+Ref: Printing Messages-Footnote-11081810
+Node: Updating ERRNO1081963
+Node: Requesting Values1082702
+Ref: table-value-types-returned1083439
+Node: Accessing Parameters1084547
+Node: Symbol Table Access1085784
+Node: Symbol table by name1086296
+Ref: Symbol table by name-Footnote-11089320
+Node: Symbol table by cookie1089448
+Ref: Symbol table by cookie-Footnote-11093633
+Node: Cached values1093697
+Ref: Cached values-Footnote-11097233
+Node: Array Manipulation1097386
+Ref: Array Manipulation-Footnote-11098477
+Node: Array Data Types1098514
+Ref: Array Data Types-Footnote-11101172
+Node: Array Functions1101264
+Node: Flattening Arrays1105762
+Node: Creating Arrays1112738
+Node: Redirection API1117505
+Node: Extension API Variables1120338
+Node: Extension Versioning1121049
+Ref: gawk-api-version1121478
+Node: Extension GMP/MPFR Versioning1123209
+Node: Extension API Informational Variables1124837
+Node: Extension API Boilerplate1125910
+Node: Changes from API V11129884
+Node: Finding Extensions1131456
+Node: Extension Example1132015
+Node: Internal File Description1132813
+Node: Internal File Ops1136893
+Ref: Internal File Ops-Footnote-11148243
+Node: Using Internal File Ops1148383
+Ref: Using Internal File Ops-Footnote-11150766
+Node: Extension Samples1151040
+Node: Extension Sample File Functions1152569
+Node: Extension Sample Fnmatch1160218
+Node: Extension Sample Fork1161705
+Node: Extension Sample Inplace1162923
+Node: Extension Sample Ord1166549
+Node: Extension Sample Readdir1167385
+Ref: table-readdir-file-types1168274
+Node: Extension Sample Revout1169341
+Node: Extension Sample Rev2way1169930
+Node: Extension Sample Read write array1170670
+Node: Extension Sample Readfile1172612
+Node: Extension Sample Time1173707
+Node: Extension Sample API Tests1175459
+Node: gawkextlib1175951
+Node: Extension summary1178869
+Node: Extension Exercises1182571
+Node: Language History1183813
+Node: V7/SVR3.11185469
+Node: SVR41187621
+Node: POSIX1189055
+Node: BTL1190436
+Node: POSIX/GNU1191165
+Node: Feature History1196943
+Node: Common Extensions1214118
+Node: Ranges and Locales1215401
+Ref: Ranges and Locales-Footnote-11220017
+Ref: Ranges and Locales-Footnote-21220044
+Ref: Ranges and Locales-Footnote-31220279
+Node: Contributors1220502
+Node: History summary1226499
+Node: Installation1227879
+Node: Gawk Distribution1228823
+Node: Getting1229307
+Node: Extracting1230270
+Node: Distribution contents1231908
+Node: Unix Installation1238388
+Node: Quick Installation1239070
+Node: Shell Startup Files1241484
+Node: Additional Configuration Options1242573
+Node: Configuration Philosophy1244888
+Node: Non-Unix Installation1247257
+Node: PC Installation1247717
+Node: PC Binary Installation1248555
+Node: PC Compiling1248990
+Node: PC Using1250107
+Node: Cygwin1253660
+Node: MSYS1254884
+Node: VMS Installation1255486
+Node: VMS Compilation1256277
+Ref: VMS Compilation-Footnote-11257506
+Node: VMS Dynamic Extensions1257564
+Node: VMS Installation Details1259249
+Node: VMS Running1261502
+Node: VMS GNV1265781
+Node: VMS Old Gawk1266516
+Node: Bugs1266987
+Node: Bug address1267650
+Node: Usenet1270632
+Node: Maintainers1271636
+Node: Other Versions1272821
+Node: Installation summary1280686
+Node: Notes1281895
+Node: Compatibility Mode1282689
+Node: Additions1283471
+Node: Accessing The Source1284396
+Node: Adding Code1285833
+Node: New Ports1292052
+Node: Derived Files1296427
+Ref: Derived Files-Footnote-11302087
+Ref: Derived Files-Footnote-21302122
+Ref: Derived Files-Footnote-31302720
+Node: Future Extensions1302834
+Node: Implementation Limitations1303492
+Node: Extension Design1304702
+Node: Old Extension Problems1305846
+Ref: Old Extension Problems-Footnote-11307364
+Node: Extension New Mechanism Goals1307421
+Ref: Extension New Mechanism Goals-Footnote-11310785
+Node: Extension Other Design Decisions1310974
+Node: Extension Future Growth1313087
+Node: Notes summary1313693
+Node: Basic Concepts1314851
+Node: Basic High Level1315532
+Ref: figure-general-flow1315814
+Ref: figure-process-flow1316499
+Ref: Basic High Level-Footnote-11319800
+Node: Basic Data Typing1319985
+Node: Glossary1323313
+Node: Copying1355200
+Node: GNU Free Documentation License1392743
+Node: Index1417863

End Tag Table