aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1450
1 files changed, 790 insertions, 660 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 0c5f8040..862860d2 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()'.
@@ -490,6 +492,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"].
@@ -553,6 +556,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.
@@ -3226,7 +3230,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
@@ -6993,8 +6999,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
@@ -12823,6 +12829,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
@@ -12835,7 +12842,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
--------------------------------
@@ -12879,9 +12886,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
@@ -12907,7 +12929,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()'
@@ -13005,7 +13027,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
@@ -13581,7 +13603,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.
@@ -13727,7 +13749,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
@@ -13944,7 +13966,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
@@ -14261,7 +14283,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.
@@ -14443,7 +14465,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
@@ -14467,6 +14489,9 @@ contexts.
'"number"'
X is a number.
+ '"number|bool"'
+ X is a Boolean typed value (*note Boolean Typed Values::).
+
'"string"'
X is a string.
@@ -14541,7 +14566,7 @@ different, they are automatically forced to be scalars. Consider:

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
@@ -15220,7 +15245,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
@@ -20973,6 +20998,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.
@@ -20982,7 +21008,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
===================================
@@ -21025,9 +21051,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).)
+
+ 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.2 Controlling Array Traversal and Array Sorting
+12.3 Controlling Array Traversal and Array Sorting
==================================================
'gawk' lets you control the order in which a 'for (INDX in ARRAY)' loop
@@ -21046,7 +21116,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
@@ -21285,7 +21355,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
@@ -21430,7 +21500,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
@@ -21625,7 +21695,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':
@@ -21705,7 +21775,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
@@ -21967,7 +22037,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
@@ -22003,7 +22073,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
@@ -24360,18 +24430,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.
@@ -24430,11 +24492,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
@@ -24527,6 +24584,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
@@ -24591,7 +24649,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
..........................
@@ -24639,6 +24697,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
@@ -25585,7 +25701,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'.
@@ -25598,6 +25715,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
@@ -25613,6 +25731,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.
@@ -25923,6 +26042,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
@@ -26648,16 +26772,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
@@ -33521,8 +33646,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
@@ -35679,6 +35804,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)
@@ -36035,7 +36161,7 @@ Index
* dark corner, length() function: String Functions. (line 201)
* dark corner, split() function: String Functions. (line 380)
* dark corner, array elements created by reference: Type Functions.
- (line 85)
+ (line 88)
* dark corner, parameter name restrictions: Definition Syntax.
(line 44)
* dark corner <1>: Glossary. (line 266)
@@ -37279,6 +37405,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)
@@ -38506,609 +38633,612 @@ Index

Tag Table:
Node: Top1200
-Node: Foreword345252
-Node: Foreword449694
-Node: Preface51226
-Ref: Preface-Footnote-154085
-Ref: Preface-Footnote-254194
-Ref: Preface-Footnote-354428
-Node: History54570
-Node: Names56922
-Ref: Names-Footnote-158026
-Node: This Manual58173
-Ref: This Manual-Footnote-164812
-Node: Conventions64912
-Node: Manual History67281
-Ref: Manual History-Footnote-170278
-Ref: Manual History-Footnote-270319
-Node: How To Contribute70393
-Node: Acknowledgments71319
-Node: Getting Started76256
-Node: Running gawk78695
-Node: One-shot79885
-Node: Read Terminal81148
-Node: Long83141
-Node: Executable Scripts84654
-Ref: Executable Scripts-Footnote-187287
-Node: Comments87390
-Node: Quoting89874
-Node: DOS Quoting95400
-Node: Sample Data Files97456
-Node: Very Simple100051
-Node: Two Rules106153
-Node: More Complex108038
-Node: Statements/Lines110370
-Ref: Statements/Lines-Footnote-1114854
-Node: Other Features115119
-Node: When116055
-Ref: When-Footnote-1117809
-Node: Intro Summary117874
-Node: Invoking Gawk118758
-Node: Command Line120272
-Node: Options121070
-Ref: Options-Footnote-1138984
-Ref: Options-Footnote-2139215
-Node: Other Arguments139240
-Node: Naming Standard Input143251
-Node: Environment Variables144461
-Node: AWKPATH Variable145019
-Ref: AWKPATH Variable-Footnote-1148431
-Ref: AWKPATH Variable-Footnote-2148465
-Node: AWKLIBPATH Variable148836
-Ref: AWKLIBPATH Variable-Footnote-1150533
-Node: Other Environment Variables150908
-Node: Exit Status154729
-Node: Include Files155406
-Node: Loading Shared Libraries159096
-Node: Obsolete160524
-Node: Undocumented161216
-Node: Invoking Summary161513
-Node: Regexp164354
-Node: Regexp Usage165808
-Node: Escape Sequences167845
-Node: Regexp Operators174086
-Node: Regexp Operator Details174571
-Ref: Regexp Operator Details-Footnote-1181935
-Node: Interval Expressions182082
-Ref: Interval Expressions-Footnote-1184282
-Node: Bracket Expressions184380
-Ref: table-char-classes186856
-Node: Leftmost Longest190182
-Node: Computed Regexps191485
-Node: GNU Regexp Operators194912
-Node: Case-sensitivity198649
-Ref: Case-sensitivity-Footnote-1201515
-Ref: Case-sensitivity-Footnote-2201750
-Node: Regexp Summary201858
-Node: Reading Files203324
-Node: Records205593
-Node: awk split records206668
-Node: gawk split records211368
-Ref: gawk split records-Footnote-1216442
-Node: Fields216479
-Node: Nonconstant Fields219220
-Ref: Nonconstant Fields-Footnote-1221456
-Node: Changing Fields221660
-Node: Field Separators227691
-Node: Default Field Splitting230389
-Node: Regexp Field Splitting231507
-Node: Single Character Fields235184
-Node: Command Line Field Separator236244
-Node: Full Line Fields239462
-Ref: Full Line Fields-Footnote-1240984
-Ref: Full Line Fields-Footnote-2241030
-Node: Field Splitting Summary241131
-Node: Constant Size243205
-Node: Fixed width data243937
-Node: Skipping intervening247404
-Node: Allowing trailing data248202
-Node: Fields with fixed data249239
-Node: Splitting By Content250757
-Ref: Splitting By Content-Footnote-1254540
-Node: More CSV254703
-Node: Testing field creation256295
-Node: Multiple Line257920
-Node: Getline264197
-Node: Plain Getline266666
-Node: Getline/Variable269239
-Node: Getline/File270390
-Node: Getline/Variable/File271778
-Ref: Getline/Variable/File-Footnote-1273383
-Node: Getline/Pipe273471
-Node: Getline/Variable/Pipe276175
-Node: Getline/Coprocess277310
-Node: Getline/Variable/Coprocess278577
-Node: Getline Notes279319
-Node: Getline Summary282116
-Ref: table-getline-variants282540
-Node: Read Timeout283288
-Ref: Read Timeout-Footnote-1287194
-Node: Retrying Input287252
-Node: Command-line directories288451
-Node: Input Summary289357
-Node: Input Exercises292529
-Node: Printing292963
-Node: Print294797
-Node: Print Examples296254
-Node: Output Separators299034
-Node: OFMT301051
-Node: Printf302407
-Node: Basic Printf303192
-Node: Control Letters304766
-Node: Format Modifiers309930
-Node: Printf Examples315945
-Node: Redirection318431
-Node: Special FD325272
-Ref: Special FD-Footnote-1328440
-Node: Special Files328514
-Node: Other Inherited Files329131
-Node: Special Network330132
-Node: Special Caveats330992
-Node: Close Files And Pipes331941
-Ref: table-close-pipe-return-values338848
-Ref: Close Files And Pipes-Footnote-1339661
-Ref: Close Files And Pipes-Footnote-2339809
-Node: Nonfatal339961
-Node: Output Summary342299
-Node: Output Exercises343521
-Node: Expressions344200
-Node: Values345388
-Node: Constants346066
-Node: Scalar Constants346757
-Ref: Scalar Constants-Footnote-1349267
-Node: Nondecimal-numbers349517
-Node: Regexp Constants352518
-Node: Using Constant Regexps353044
-Node: Standard Regexp Constants353666
-Node: Strong Regexp Constants356854
-Node: Variables360567
-Node: Using Variables361224
-Node: Assignment Options363134
-Node: Conversion365605
-Node: Strings And Numbers366129
-Ref: Strings And Numbers-Footnote-1369192
-Node: Locale influences conversions369301
-Ref: table-locale-affects372059
-Node: All Operators372677
-Node: Arithmetic Ops373306
-Node: Concatenation376022
-Ref: Concatenation-Footnote-1378869
-Node: Assignment Ops378976
-Ref: table-assign-ops383967
-Node: Increment Ops385280
-Node: Truth Values and Conditions388740
-Node: Truth Values389814
-Node: Typing and Comparison390862
-Node: Variable Typing391682
-Ref: Variable Typing-Footnote-1398145
-Ref: Variable Typing-Footnote-2398217
-Node: Comparison Operators398294
-Ref: table-relational-ops398713
-Node: POSIX String Comparison402208
-Ref: POSIX String Comparison-Footnote-1403903
-Ref: POSIX String Comparison-Footnote-2404042
-Node: Boolean Ops404126
-Ref: Boolean Ops-Footnote-1408608
-Node: Conditional Exp408700
-Node: Function Calls410436
-Node: Precedence414313
-Node: Locales417972
-Node: Expressions Summary419604
-Node: Patterns and Actions422177
-Node: Pattern Overview423297
-Node: Regexp Patterns424974
-Node: Expression Patterns425516
-Node: Ranges429297
-Node: BEGIN/END432405
-Node: Using BEGIN/END433166
-Ref: Using BEGIN/END-Footnote-1435920
-Node: I/O And BEGIN/END436026
-Node: BEGINFILE/ENDFILE438339
-Node: Empty441570
-Node: Using Shell Variables441887
-Node: Action Overview444161
-Node: Statements446486
-Node: If Statement448334
-Node: While Statement449829
-Node: Do Statement451857
-Node: For Statement453005
-Node: Switch Statement456176
-Node: Break Statement458617
-Node: Continue Statement460709
-Node: Next Statement462536
-Node: Nextfile Statement464919
-Node: Exit Statement467608
-Node: Built-in Variables470011
-Node: User-modified471144
-Node: Auto-set478911
-Ref: Auto-set-Footnote-1495718
-Ref: Auto-set-Footnote-2495924
-Node: ARGC and ARGV495980
-Node: Pattern Action Summary500193
-Node: Arrays502623
-Node: Array Basics503952
-Node: Array Intro504796
-Ref: figure-array-elements506771
-Ref: Array Intro-Footnote-1509475
-Node: Reference to Elements509603
-Node: Assigning Elements512067
-Node: Array Example512558
-Node: Scanning an Array514317
-Node: Controlling Scanning517339
-Ref: Controlling Scanning-Footnote-1523795
-Node: Numeric Array Subscripts524111
-Node: Uninitialized Subscripts526295
-Node: Delete527914
-Ref: Delete-Footnote-1530666
-Node: Multidimensional530723
-Node: Multiscanning533818
-Node: Arrays of Arrays535409
-Node: Arrays Summary540177
-Node: Functions542270
-Node: Built-in543308
-Node: Calling Built-in544389
-Node: Numeric Functions546385
-Ref: Numeric Functions-Footnote-1550413
-Ref: Numeric Functions-Footnote-2551061
-Ref: Numeric Functions-Footnote-3551109
-Node: String Functions551381
-Ref: String Functions-Footnote-1575896
-Ref: String Functions-Footnote-2576024
-Ref: String Functions-Footnote-3576272
-Node: Gory Details576359
-Ref: table-sub-escapes578150
-Ref: table-sub-proposed579669
-Ref: table-posix-sub581032
-Ref: table-gensub-escapes582573
-Ref: Gory Details-Footnote-1583396
-Node: I/O Functions583550
-Ref: table-system-return-values590004
-Ref: I/O Functions-Footnote-1592084
-Ref: I/O Functions-Footnote-2592232
-Node: Time Functions592352
-Ref: Time Functions-Footnote-1603023
-Ref: Time Functions-Footnote-2603091
-Ref: Time Functions-Footnote-3603249
-Ref: Time Functions-Footnote-4603360
-Ref: Time Functions-Footnote-5603472
-Ref: Time Functions-Footnote-6603699
-Node: Bitwise Functions603965
-Ref: table-bitwise-ops604559
-Ref: Bitwise Functions-Footnote-1610622
-Ref: Bitwise Functions-Footnote-2610795
-Node: Type Functions610986
-Node: I18N Functions614315
-Node: User-defined615966
-Node: Definition Syntax616778
-Ref: Definition Syntax-Footnote-1622472
-Node: Function Example622543
-Ref: Function Example-Footnote-1625465
-Node: Function Calling625487
-Node: Calling A Function626075
-Node: Variable Scope627033
-Node: Pass By Value/Reference630027
-Node: Function Caveats632671
-Ref: Function Caveats-Footnote-1634718
-Node: Return Statement634838
-Node: Dynamic Typing637817
-Node: Indirect Calls638747
-Ref: Indirect Calls-Footnote-1648999
-Node: Functions Summary649127
-Node: Library Functions651832
-Ref: Library Functions-Footnote-1655439
-Ref: Library Functions-Footnote-2655582
-Node: Library Names655753
-Ref: Library Names-Footnote-1659420
-Ref: Library Names-Footnote-2659643
-Node: General Functions659729
-Node: Strtonum Function660911
-Node: Assert Function663933
-Node: Round Function667259
-Node: Cliff Random Function668799
-Node: Ordinal Functions669815
-Ref: Ordinal Functions-Footnote-1672878
-Ref: Ordinal Functions-Footnote-2673130
-Node: Join Function673340
-Ref: Join Function-Footnote-1675110
-Node: Getlocaltime Function675310
-Node: Readfile Function679052
-Node: Shell Quoting681029
-Node: Isnumeric Function682457
-Node: Data File Management683845
-Node: Filetrans Function684477
-Node: Rewind Function688573
-Node: File Checking690482
-Ref: File Checking-Footnote-1691816
-Node: Empty Files692017
-Node: Ignoring Assigns693996
-Node: Getopt Function695546
-Ref: Getopt Function-Footnote-1710769
-Node: Passwd Functions710969
-Ref: Passwd Functions-Footnote-1719808
-Node: Group Functions719896
-Ref: Group Functions-Footnote-1727794
-Node: Walking Arrays728001
-Node: Library Functions Summary731009
-Node: Library Exercises732415
-Node: Sample Programs732880
-Node: Running Examples733650
-Node: Clones734378
-Node: Cut Program735602
-Node: Egrep Program745742
-Node: Id Program754743
-Node: Split Program764690
-Ref: Split Program-Footnote-1774583
-Node: Tee Program774756
-Node: Uniq Program777546
-Node: Wc Program785134
-Node: Bytes vs. Characters785521
-Node: Using extensions787069
-Node: wc program787823
-Node: Miscellaneous Programs792688
-Node: Dupword Program793901
-Node: Alarm Program795931
-Node: Translate Program800786
-Ref: Translate Program-Footnote-1805351
-Node: Labels Program805621
-Ref: Labels Program-Footnote-1808972
-Node: Word Sorting809056
-Node: History Sorting813128
-Node: Extract Program815353
-Node: Simple Sed823407
-Node: Igawk Program826481
-Ref: Igawk Program-Footnote-1840812
-Ref: Igawk Program-Footnote-2841014
-Ref: Igawk Program-Footnote-3841136
-Node: Anagram Program841251
-Node: Signature Program844313
-Node: Programs Summary845560
-Node: Programs Exercises846774
-Ref: Programs Exercises-Footnote-1850904
-Node: Advanced Features850990
-Node: Nondecimal Data853057
-Node: Array Sorting854648
-Node: Controlling Array Traversal855348
-Ref: Controlling Array Traversal-Footnote-1863716
-Node: Array Sorting Functions863834
-Ref: Array Sorting Functions-Footnote-1869208
-Node: Two-way I/O869404
-Ref: Two-way I/O-Footnote-1877130
-Ref: Two-way I/O-Footnote-2877317
-Node: TCP/IP Networking877399
-Node: Profiling880517
-Node: Extension Philosophy889826
-Node: Advanced Features Summary891305
-Node: Internationalization893320
-Node: I18N and L10N894994
-Node: Explaining gettext895681
-Ref: Explaining gettext-Footnote-1901573
-Ref: Explaining gettext-Footnote-2901758
-Node: Programmer i18n901923
-Ref: Programmer i18n-Footnote-1906872
-Node: Translator i18n906921
-Node: String Extraction907715
-Ref: String Extraction-Footnote-1908847
-Node: Printf Ordering908933
-Ref: Printf Ordering-Footnote-1911719
-Node: I18N Portability911783
-Ref: I18N Portability-Footnote-1914239
-Node: I18N Example914302
-Ref: I18N Example-Footnote-1917577
-Ref: I18N Example-Footnote-2917650
-Node: Gawk I18N917759
-Node: I18N Summary918408
-Node: Debugger919749
-Node: Debugging920749
-Node: Debugging Concepts921190
-Node: Debugging Terms922999
-Node: Awk Debugging925574
-Ref: Awk Debugging-Footnote-1926519
-Node: Sample Debugging Session926651
-Node: Debugger Invocation927185
-Node: Finding The Bug928571
-Node: List of Debugger Commands935045
-Node: Breakpoint Control936378
-Node: Debugger Execution Control940072
-Node: Viewing And Changing Data943434
-Node: Execution Stack946975
-Node: Debugger Info948612
-Node: Miscellaneous Debugger Commands952683
-Node: Readline Support957745
-Node: Limitations958641
-Node: Debugging Summary961195
-Node: Namespaces962474
-Node: Global Namespace963585
-Node: Qualified Names964983
-Node: Default Namespace965982
-Node: Changing The Namespace966723
-Node: Naming Rules968337
-Node: Internal Name Management970185
-Node: Namespace Example971227
-Node: Namespace And Features973789
-Node: Namespace Summary975224
-Node: Arbitrary Precision Arithmetic976701
-Node: Computer Arithmetic978188
-Ref: table-numeric-ranges981954
-Ref: table-floating-point-ranges982447
-Ref: Computer Arithmetic-Footnote-1983105
-Node: Math Definitions983162
-Ref: table-ieee-formats986478
-Ref: Math Definitions-Footnote-1987081
-Node: MPFR features987186
-Node: FP Math Caution988904
-Ref: FP Math Caution-Footnote-1989976
-Node: Inexactness of computations990345
-Node: Inexact representation991305
-Node: Comparing FP Values992665
-Node: Errors accumulate993906
-Node: Getting Accuracy995339
-Node: Try To Round998049
-Node: Setting precision998948
-Ref: table-predefined-precision-strings999645
-Node: Setting the rounding mode1001475
-Ref: table-gawk-rounding-modes1001849
-Ref: Setting the rounding mode-Footnote-11005780
-Node: Arbitrary Precision Integers1005959
-Ref: Arbitrary Precision Integers-Footnote-11009134
-Node: Checking for MPFR1009283
-Node: POSIX Floating Point Problems1010757
-Ref: POSIX Floating Point Problems-Footnote-11015042
-Node: Floating point summary1015080
-Node: Dynamic Extensions1017270
-Node: Extension Intro1018823
-Node: Plugin License1020089
-Node: Extension Mechanism Outline1020886
-Ref: figure-load-extension1021325
-Ref: figure-register-new-function1022890
-Ref: figure-call-new-function1023982
-Node: Extension API Description1026044
-Node: Extension API Functions Introduction1027757
-Ref: table-api-std-headers1029593
-Node: General Data Types1033842
-Ref: General Data Types-Footnote-11042472
-Node: Memory Allocation Functions1042771
-Ref: Memory Allocation Functions-Footnote-11047272
-Node: Constructor Functions1047371
-Node: API Ownership of MPFR and GMP Values1050837
-Node: Registration Functions1052150
-Node: Extension Functions1052850
-Node: Exit Callback Functions1058172
-Node: Extension Version String1059422
-Node: Input Parsers1060085
-Node: Output Wrappers1072806
-Node: Two-way processors1077318
-Node: Printing Messages1079583
-Ref: Printing Messages-Footnote-11080754
-Node: Updating ERRNO1080907
-Node: Requesting Values1081646
-Ref: table-value-types-returned1082383
-Node: Accessing Parameters1083319
-Node: Symbol Table Access1084556
-Node: Symbol table by name1085068
-Ref: Symbol table by name-Footnote-11088093
-Node: Symbol table by cookie1088221
-Ref: Symbol table by cookie-Footnote-11092406
-Node: Cached values1092470
-Ref: Cached values-Footnote-11096006
-Node: Array Manipulation1096159
-Ref: Array Manipulation-Footnote-11097250
-Node: Array Data Types1097287
-Ref: Array Data Types-Footnote-11099945
-Node: Array Functions1100037
-Node: Flattening Arrays1104535
-Node: Creating Arrays1111511
-Node: Redirection API1116278
-Node: Extension API Variables1119111
-Node: Extension Versioning1119822
-Ref: gawk-api-version1120251
-Node: Extension GMP/MPFR Versioning1121982
-Node: Extension API Informational Variables1123610
-Node: Extension API Boilerplate1124683
-Node: Changes from API V11128657
-Node: Finding Extensions1130229
-Node: Extension Example1130788
-Node: Internal File Description1131586
-Node: Internal File Ops1135666
-Ref: Internal File Ops-Footnote-11147016
-Node: Using Internal File Ops1147156
-Ref: Using Internal File Ops-Footnote-11149539
-Node: Extension Samples1149813
-Node: Extension Sample File Functions1151342
-Node: Extension Sample Fnmatch1158991
-Node: Extension Sample Fork1160478
-Node: Extension Sample Inplace1161696
-Node: Extension Sample Ord1165322
-Node: Extension Sample Readdir1166158
-Ref: table-readdir-file-types1167047
-Node: Extension Sample Revout1168114
-Node: Extension Sample Rev2way1168703
-Node: Extension Sample Read write array1169443
-Node: Extension Sample Readfile1171385
-Node: Extension Sample Time1172480
-Node: Extension Sample API Tests1174232
-Node: gawkextlib1174724
-Node: Extension summary1177642
-Node: Extension Exercises1181344
-Node: Language History1182586
-Node: V7/SVR3.11184242
-Node: SVR41186394
-Node: POSIX1187828
-Node: BTL1189209
-Node: POSIX/GNU1189938
-Node: Feature History1195716
-Node: Common Extensions1212891
-Node: Ranges and Locales1214174
-Ref: Ranges and Locales-Footnote-11218790
-Ref: Ranges and Locales-Footnote-21218817
-Ref: Ranges and Locales-Footnote-31219052
-Node: Contributors1219275
-Node: History summary1225272
-Node: Installation1226652
-Node: Gawk Distribution1227596
-Node: Getting1228080
-Node: Extracting1229043
-Node: Distribution contents1230681
-Node: Unix Installation1237823
-Node: Quick Installation1238627
-Node: Compiling with MPFR1241103
-Node: Shell Startup Files1241795
-Node: Additional Configuration Options1242884
-Node: Configuration Philosophy1245199
-Node: Compiling from Git1247595
-Node: Building the Documentation1248150
-Node: Non-Unix Installation1249534
-Node: PC Installation1249994
-Node: PC Binary Installation1250832
-Node: PC Compiling1251267
-Node: PC Using1252384
-Node: Cygwin1255937
-Node: MSYS1257161
-Node: VMS Installation1257763
-Node: VMS Compilation1258482
-Ref: VMS Compilation-Footnote-11259711
-Node: VMS Dynamic Extensions1259769
-Node: VMS Installation Details1261454
-Node: VMS Running1263716
-Node: VMS GNV1267995
-Node: Bugs1268709
-Node: Bug definition1269621
-Node: Bug address1272125
-Node: Usenet1275513
-Node: Performance bugs1276522
-Node: Asking for help1279443
-Node: Maintainers1281405
-Node: Other Versions1282599
-Node: Installation summary1290451
-Node: Notes1291815
-Node: Compatibility Mode1292609
-Node: Additions1293391
-Node: Accessing The Source1294316
-Node: Adding Code1295753
-Node: New Ports1301972
-Node: Derived Files1306347
-Ref: Derived Files-Footnote-11312007
-Ref: Derived Files-Footnote-21312042
-Ref: Derived Files-Footnote-31312640
-Node: Future Extensions1312754
-Node: Implementation Limitations1313412
-Node: Extension Design1314622
-Node: Old Extension Problems1315766
-Ref: Old Extension Problems-Footnote-11317284
-Node: Extension New Mechanism Goals1317341
-Ref: Extension New Mechanism Goals-Footnote-11320705
-Node: Extension Other Design Decisions1320894
-Node: Extension Future Growth1323007
-Node: Notes summary1323613
-Node: Basic Concepts1324771
-Node: Basic High Level1325452
-Ref: figure-general-flow1325734
-Ref: figure-process-flow1326419
-Ref: Basic High Level-Footnote-11329720
-Node: Basic Data Typing1329905
-Node: Glossary1333233
-Node: Copying1365118
-Node: GNU Free Documentation License1402661
-Node: Index1427781
+Node: Foreword345523
+Node: Foreword449965
+Node: Preface51497
+Ref: Preface-Footnote-154356
+Ref: Preface-Footnote-254465
+Ref: Preface-Footnote-354699
+Node: History54841
+Node: Names57193
+Ref: Names-Footnote-158297
+Node: This Manual58444
+Ref: This Manual-Footnote-165083
+Node: Conventions65183
+Node: Manual History67552
+Ref: Manual History-Footnote-170549
+Ref: Manual History-Footnote-270590
+Node: How To Contribute70664
+Node: Acknowledgments71590
+Node: Getting Started76527
+Node: Running gawk78966
+Node: One-shot80156
+Node: Read Terminal81419
+Node: Long83412
+Node: Executable Scripts84925
+Ref: Executable Scripts-Footnote-187558
+Node: Comments87661
+Node: Quoting90145
+Node: DOS Quoting95671
+Node: Sample Data Files97727
+Node: Very Simple100322
+Node: Two Rules106424
+Node: More Complex108309
+Node: Statements/Lines110641
+Ref: Statements/Lines-Footnote-1115125
+Node: Other Features115390
+Node: When116326
+Ref: When-Footnote-1118080
+Node: Intro Summary118145
+Node: Invoking Gawk119029
+Node: Command Line120543
+Node: Options121341
+Ref: Options-Footnote-1139255
+Ref: Options-Footnote-2139486
+Node: Other Arguments139511
+Node: Naming Standard Input143522
+Node: Environment Variables144732
+Node: AWKPATH Variable145290
+Ref: AWKPATH Variable-Footnote-1148702
+Ref: AWKPATH Variable-Footnote-2148736
+Node: AWKLIBPATH Variable149107
+Ref: AWKLIBPATH Variable-Footnote-1150804
+Node: Other Environment Variables151179
+Node: Exit Status155131
+Node: Include Files155808
+Node: Loading Shared Libraries159498
+Node: Obsolete160926
+Node: Undocumented161618
+Node: Invoking Summary161915
+Node: Regexp164756
+Node: Regexp Usage166210
+Node: Escape Sequences168247
+Node: Regexp Operators174488
+Node: Regexp Operator Details174973
+Ref: Regexp Operator Details-Footnote-1182337
+Node: Interval Expressions182484
+Ref: Interval Expressions-Footnote-1184684
+Node: Bracket Expressions184782
+Ref: table-char-classes187258
+Node: Leftmost Longest190584
+Node: Computed Regexps191887
+Node: GNU Regexp Operators195314
+Node: Case-sensitivity199051
+Ref: Case-sensitivity-Footnote-1201917
+Ref: Case-sensitivity-Footnote-2202152
+Node: Regexp Summary202260
+Node: Reading Files203726
+Node: Records205995
+Node: awk split records207070
+Node: gawk split records211770
+Ref: gawk split records-Footnote-1216844
+Node: Fields216881
+Node: Nonconstant Fields219622
+Ref: Nonconstant Fields-Footnote-1221858
+Node: Changing Fields222062
+Node: Field Separators228093
+Node: Default Field Splitting230791
+Node: Regexp Field Splitting231909
+Node: Single Character Fields235586
+Node: Command Line Field Separator236646
+Node: Full Line Fields239864
+Ref: Full Line Fields-Footnote-1241386
+Ref: Full Line Fields-Footnote-2241432
+Node: Field Splitting Summary241533
+Node: Constant Size243607
+Node: Fixed width data244339
+Node: Skipping intervening247806
+Node: Allowing trailing data248604
+Node: Fields with fixed data249641
+Node: Splitting By Content251159
+Ref: Splitting By Content-Footnote-1254942
+Node: More CSV255105
+Node: Testing field creation256697
+Node: Multiple Line258322
+Node: Getline264599
+Node: Plain Getline267068
+Node: Getline/Variable269641
+Node: Getline/File270792
+Node: Getline/Variable/File272180
+Ref: Getline/Variable/File-Footnote-1273785
+Node: Getline/Pipe273873
+Node: Getline/Variable/Pipe276577
+Node: Getline/Coprocess277712
+Node: Getline/Variable/Coprocess278979
+Node: Getline Notes279721
+Node: Getline Summary282518
+Ref: table-getline-variants282942
+Node: Read Timeout283690
+Ref: Read Timeout-Footnote-1287596
+Node: Retrying Input287654
+Node: Command-line directories288853
+Node: Input Summary289759
+Node: Input Exercises292931
+Node: Printing293365
+Node: Print295199
+Node: Print Examples296656
+Node: Output Separators299436
+Node: OFMT301453
+Node: Printf302809
+Node: Basic Printf303594
+Node: Control Letters305168
+Node: Format Modifiers310330
+Node: Printf Examples316345
+Node: Redirection318831
+Node: Special FD325672
+Ref: Special FD-Footnote-1328840
+Node: Special Files328914
+Node: Other Inherited Files329531
+Node: Special Network330532
+Node: Special Caveats331392
+Node: Close Files And Pipes332341
+Ref: table-close-pipe-return-values339248
+Ref: Close Files And Pipes-Footnote-1340061
+Ref: Close Files And Pipes-Footnote-2340209
+Node: Nonfatal340361
+Node: Output Summary342699
+Node: Output Exercises343921
+Node: Expressions344600
+Node: Values345788
+Node: Constants346466
+Node: Scalar Constants347157
+Ref: Scalar Constants-Footnote-1349667
+Node: Nondecimal-numbers349917
+Node: Regexp Constants352918
+Node: Using Constant Regexps353444
+Node: Standard Regexp Constants354066
+Node: Strong Regexp Constants357254
+Node: Variables360967
+Node: Using Variables361624
+Node: Assignment Options363534
+Node: Conversion366005
+Node: Strings And Numbers366529
+Ref: Strings And Numbers-Footnote-1369592
+Node: Locale influences conversions369701
+Ref: table-locale-affects372459
+Node: All Operators373077
+Node: Arithmetic Ops373706
+Node: Concatenation376422
+Ref: Concatenation-Footnote-1379269
+Node: Assignment Ops379376
+Ref: table-assign-ops384367
+Node: Increment Ops385680
+Node: Truth Values and Conditions389140
+Node: Truth Values390214
+Node: Typing and Comparison391262
+Node: Variable Typing392082
+Ref: Variable Typing-Footnote-1398545
+Ref: Variable Typing-Footnote-2398617
+Node: Comparison Operators398694
+Ref: table-relational-ops399113
+Node: POSIX String Comparison402608
+Ref: POSIX String Comparison-Footnote-1404303
+Ref: POSIX String Comparison-Footnote-2404442
+Node: Boolean Ops404526
+Ref: Boolean Ops-Footnote-1409008
+Node: Conditional Exp409100
+Node: Function Calls410836
+Node: Precedence414713
+Node: Locales418372
+Node: Expressions Summary420004
+Node: Patterns and Actions422577
+Node: Pattern Overview423697
+Node: Regexp Patterns425374
+Node: Expression Patterns425916
+Node: Ranges429697
+Node: BEGIN/END432805
+Node: Using BEGIN/END433566
+Ref: Using BEGIN/END-Footnote-1436320
+Node: I/O And BEGIN/END436426
+Node: BEGINFILE/ENDFILE438739
+Node: Empty441970
+Node: Using Shell Variables442287
+Node: Action Overview444561
+Node: Statements446886
+Node: If Statement448734
+Node: While Statement450229
+Node: Do Statement452257
+Node: For Statement453405
+Node: Switch Statement456576
+Node: Break Statement459017
+Node: Continue Statement461109
+Node: Next Statement462936
+Node: Nextfile Statement465319
+Node: Exit Statement468008
+Node: Built-in Variables470411
+Node: User-modified471544
+Node: Auto-set479311
+Ref: Auto-set-Footnote-1496118
+Ref: Auto-set-Footnote-2496324
+Node: ARGC and ARGV496380
+Node: Pattern Action Summary500593
+Node: Arrays503023
+Node: Array Basics504352
+Node: Array Intro505196
+Ref: figure-array-elements507171
+Ref: Array Intro-Footnote-1509875
+Node: Reference to Elements510003
+Node: Assigning Elements512467
+Node: Array Example512958
+Node: Scanning an Array514717
+Node: Controlling Scanning517739
+Ref: Controlling Scanning-Footnote-1524195
+Node: Numeric Array Subscripts524511
+Node: Uninitialized Subscripts526695
+Node: Delete528314
+Ref: Delete-Footnote-1531066
+Node: Multidimensional531123
+Node: Multiscanning534218
+Node: Arrays of Arrays535809
+Node: Arrays Summary540577
+Node: Functions542670
+Node: Built-in543708
+Node: Calling Built-in544861
+Node: Boolean Functions546857
+Node: Numeric Functions547411
+Ref: Numeric Functions-Footnote-1551438
+Ref: Numeric Functions-Footnote-2552086
+Ref: Numeric Functions-Footnote-3552134
+Node: String Functions552406
+Ref: String Functions-Footnote-1576921
+Ref: String Functions-Footnote-2577049
+Ref: String Functions-Footnote-3577297
+Node: Gory Details577384
+Ref: table-sub-escapes579175
+Ref: table-sub-proposed580694
+Ref: table-posix-sub582057
+Ref: table-gensub-escapes583598
+Ref: Gory Details-Footnote-1584421
+Node: I/O Functions584575
+Ref: table-system-return-values591029
+Ref: I/O Functions-Footnote-1593109
+Ref: I/O Functions-Footnote-2593257
+Node: Time Functions593377
+Ref: Time Functions-Footnote-1604048
+Ref: Time Functions-Footnote-2604116
+Ref: Time Functions-Footnote-3604274
+Ref: Time Functions-Footnote-4604385
+Ref: Time Functions-Footnote-5604497
+Ref: Time Functions-Footnote-6604724
+Node: Bitwise Functions604990
+Ref: table-bitwise-ops605584
+Ref: Bitwise Functions-Footnote-1611647
+Ref: Bitwise Functions-Footnote-2611820
+Node: Type Functions612011
+Node: I18N Functions615431
+Node: User-defined617082
+Node: Definition Syntax617894
+Ref: Definition Syntax-Footnote-1623588
+Node: Function Example623659
+Ref: Function Example-Footnote-1626581
+Node: Function Calling626603
+Node: Calling A Function627191
+Node: Variable Scope628149
+Node: Pass By Value/Reference631143
+Node: Function Caveats633787
+Ref: Function Caveats-Footnote-1635834
+Node: Return Statement635954
+Node: Dynamic Typing638933
+Node: Indirect Calls639863
+Ref: Indirect Calls-Footnote-1650118
+Node: Functions Summary650246
+Node: Library Functions652951
+Ref: Library Functions-Footnote-1656558
+Ref: Library Functions-Footnote-2656701
+Node: Library Names656872
+Ref: Library Names-Footnote-1660539
+Ref: Library Names-Footnote-2660762
+Node: General Functions660848
+Node: Strtonum Function662030
+Node: Assert Function665052
+Node: Round Function668378
+Node: Cliff Random Function669918
+Node: Ordinal Functions670934
+Ref: Ordinal Functions-Footnote-1673997
+Ref: Ordinal Functions-Footnote-2674249
+Node: Join Function674459
+Ref: Join Function-Footnote-1676229
+Node: Getlocaltime Function676429
+Node: Readfile Function680171
+Node: Shell Quoting682148
+Node: Isnumeric Function683576
+Node: Data File Management684964
+Node: Filetrans Function685596
+Node: Rewind Function689692
+Node: File Checking691601
+Ref: File Checking-Footnote-1692935
+Node: Empty Files693136
+Node: Ignoring Assigns695115
+Node: Getopt Function696665
+Ref: Getopt Function-Footnote-1711888
+Node: Passwd Functions712088
+Ref: Passwd Functions-Footnote-1720927
+Node: Group Functions721015
+Ref: Group Functions-Footnote-1728913
+Node: Walking Arrays729120
+Node: Library Functions Summary732128
+Node: Library Exercises733534
+Node: Sample Programs733999
+Node: Running Examples734769
+Node: Clones735497
+Node: Cut Program736721
+Node: Egrep Program746861
+Node: Id Program755862
+Node: Split Program765809
+Ref: Split Program-Footnote-1775702
+Node: Tee Program775875
+Node: Uniq Program778665
+Node: Wc Program786253
+Node: Bytes vs. Characters786640
+Node: Using extensions788188
+Node: wc program788942
+Node: Miscellaneous Programs793807
+Node: Dupword Program795020
+Node: Alarm Program797050
+Node: Translate Program801905
+Ref: Translate Program-Footnote-1806470
+Node: Labels Program806740
+Ref: Labels Program-Footnote-1810091
+Node: Word Sorting810175
+Node: History Sorting814247
+Node: Extract Program816472
+Node: Simple Sed824526
+Node: Igawk Program827600
+Ref: Igawk Program-Footnote-1841931
+Ref: Igawk Program-Footnote-2842133
+Ref: Igawk Program-Footnote-3842255
+Node: Anagram Program842370
+Node: Signature Program845432
+Node: Programs Summary846679
+Node: Programs Exercises847893
+Ref: Programs Exercises-Footnote-1852023
+Node: Advanced Features852109
+Node: Nondecimal Data854240
+Node: Boolean Typed Values855838
+Node: Array Sorting857719
+Node: Controlling Array Traversal858424
+Ref: Controlling Array Traversal-Footnote-1866792
+Node: Array Sorting Functions866910
+Ref: Array Sorting Functions-Footnote-1872284
+Node: Two-way I/O872480
+Ref: Two-way I/O-Footnote-1880206
+Ref: Two-way I/O-Footnote-2880393
+Node: TCP/IP Networking880475
+Node: Profiling883593
+Node: Extension Philosophy892902
+Node: Advanced Features Summary894381
+Node: Internationalization896396
+Node: I18N and L10N898070
+Node: Explaining gettext898757
+Ref: Explaining gettext-Footnote-1904649
+Ref: Explaining gettext-Footnote-2904834
+Node: Programmer i18n904999
+Ref: Programmer i18n-Footnote-1909948
+Node: Translator i18n909997
+Node: String Extraction910791
+Ref: String Extraction-Footnote-1911923
+Node: Printf Ordering912009
+Ref: Printf Ordering-Footnote-1914795
+Node: I18N Portability914859
+Ref: I18N Portability-Footnote-1917315
+Node: I18N Example917378
+Ref: I18N Example-Footnote-1920653
+Ref: I18N Example-Footnote-2920726
+Node: Gawk I18N920835
+Node: I18N Summary921484
+Node: Debugger922825
+Node: Debugging923825
+Node: Debugging Concepts924266
+Node: Debugging Terms926075
+Node: Awk Debugging928650
+Ref: Awk Debugging-Footnote-1929595
+Node: Sample Debugging Session929727
+Node: Debugger Invocation930261
+Node: Finding The Bug931647
+Node: List of Debugger Commands938121
+Node: Breakpoint Control939454
+Node: Debugger Execution Control943148
+Node: Viewing And Changing Data946510
+Node: Execution Stack950051
+Node: Debugger Info951688
+Node: Miscellaneous Debugger Commands955759
+Node: Readline Support960821
+Node: Limitations961717
+Node: Debugging Summary964271
+Node: Namespaces965550
+Node: Global Namespace966661
+Node: Qualified Names968059
+Node: Default Namespace969058
+Node: Changing The Namespace969799
+Node: Naming Rules971413
+Node: Internal Name Management973261
+Node: Namespace Example974303
+Node: Namespace And Features976865
+Node: Namespace Summary978300
+Node: Arbitrary Precision Arithmetic979777
+Node: Computer Arithmetic981264
+Ref: table-numeric-ranges985030
+Ref: table-floating-point-ranges985523
+Ref: Computer Arithmetic-Footnote-1986181
+Node: Math Definitions986238
+Ref: table-ieee-formats989214
+Node: MPFR features989781
+Node: FP Math Caution991499
+Ref: FP Math Caution-Footnote-1992571
+Node: Inexactness of computations992940
+Node: Inexact representation993971
+Node: Comparing FP Values995331
+Node: Errors accumulate996572
+Node: Strange values998028
+Ref: Strange values-Footnote-11000616
+Node: Getting Accuracy1000721
+Node: Try To Round1003431
+Node: Setting precision1004330
+Ref: table-predefined-precision-strings1005027
+Node: Setting the rounding mode1006857
+Ref: table-gawk-rounding-modes1007231
+Ref: Setting the rounding mode-Footnote-11011162
+Node: Arbitrary Precision Integers1011341
+Ref: Arbitrary Precision Integers-Footnote-11014516
+Node: Checking for MPFR1014665
+Node: POSIX Floating Point Problems1016139
+Ref: POSIX Floating Point Problems-Footnote-11020424
+Node: Floating point summary1020462
+Node: Dynamic Extensions1022652
+Node: Extension Intro1024205
+Node: Plugin License1025471
+Node: Extension Mechanism Outline1026268
+Ref: figure-load-extension1026707
+Ref: figure-register-new-function1028272
+Ref: figure-call-new-function1029364
+Node: Extension API Description1031426
+Node: Extension API Functions Introduction1033139
+Ref: table-api-std-headers1034975
+Node: General Data Types1039224
+Ref: General Data Types-Footnote-11047930
+Node: Memory Allocation Functions1048229
+Ref: Memory Allocation Functions-Footnote-11052730
+Node: Constructor Functions1052829
+Node: API Ownership of MPFR and GMP Values1056482
+Node: Registration Functions1057795
+Node: Extension Functions1058495
+Node: Exit Callback Functions1063817
+Node: Extension Version String1065067
+Node: Input Parsers1065730
+Node: Output Wrappers1078451
+Node: Two-way processors1082963
+Node: Printing Messages1085228
+Ref: Printing Messages-Footnote-11086399
+Node: Updating ERRNO1086552
+Node: Requesting Values1087291
+Ref: table-value-types-returned1088028
+Node: Accessing Parameters1089136
+Node: Symbol Table Access1090373
+Node: Symbol table by name1090885
+Ref: Symbol table by name-Footnote-11093910
+Node: Symbol table by cookie1094038
+Ref: Symbol table by cookie-Footnote-11098223
+Node: Cached values1098287
+Ref: Cached values-Footnote-11101823
+Node: Array Manipulation1101976
+Ref: Array Manipulation-Footnote-11103067
+Node: Array Data Types1103104
+Ref: Array Data Types-Footnote-11105762
+Node: Array Functions1105854
+Node: Flattening Arrays1110352
+Node: Creating Arrays1117328
+Node: Redirection API1122095
+Node: Extension API Variables1124928
+Node: Extension Versioning1125639
+Ref: gawk-api-version1126068
+Node: Extension GMP/MPFR Versioning1127799
+Node: Extension API Informational Variables1129427
+Node: Extension API Boilerplate1130500
+Node: Changes from API V11134474
+Node: Finding Extensions1136046
+Node: Extension Example1136605
+Node: Internal File Description1137403
+Node: Internal File Ops1141483
+Ref: Internal File Ops-Footnote-11152833
+Node: Using Internal File Ops1152973
+Ref: Using Internal File Ops-Footnote-11155356
+Node: Extension Samples1155630
+Node: Extension Sample File Functions1157159
+Node: Extension Sample Fnmatch1164808
+Node: Extension Sample Fork1166295
+Node: Extension Sample Inplace1167513
+Node: Extension Sample Ord1171139
+Node: Extension Sample Readdir1171975
+Ref: table-readdir-file-types1172864
+Node: Extension Sample Revout1173931
+Node: Extension Sample Rev2way1174520
+Node: Extension Sample Read write array1175260
+Node: Extension Sample Readfile1177202
+Node: Extension Sample Time1178297
+Node: Extension Sample API Tests1180049
+Node: gawkextlib1180541
+Node: Extension summary1183459
+Node: Extension Exercises1187161
+Node: Language History1188403
+Node: V7/SVR3.11190059
+Node: SVR41192211
+Node: POSIX1193645
+Node: BTL1195026
+Node: POSIX/GNU1195755
+Node: Feature History1201533
+Node: Common Extensions1218708
+Node: Ranges and Locales1219991
+Ref: Ranges and Locales-Footnote-11224607
+Ref: Ranges and Locales-Footnote-21224634
+Ref: Ranges and Locales-Footnote-31224869
+Node: Contributors1225092
+Node: History summary1231089
+Node: Installation1232469
+Node: Gawk Distribution1233413
+Node: Getting1233897
+Node: Extracting1234860
+Node: Distribution contents1236498
+Node: Unix Installation1243640
+Node: Quick Installation1244444
+Node: Compiling with MPFR1246920
+Node: Shell Startup Files1247612
+Node: Additional Configuration Options1248701
+Node: Configuration Philosophy1251016
+Node: Compiling from Git1253412
+Node: Building the Documentation1253967
+Node: Non-Unix Installation1255351
+Node: PC Installation1255811
+Node: PC Binary Installation1256649
+Node: PC Compiling1257084
+Node: PC Using1258201
+Node: Cygwin1261754
+Node: MSYS1262978
+Node: VMS Installation1263580
+Node: VMS Compilation1264299
+Ref: VMS Compilation-Footnote-11265528
+Node: VMS Dynamic Extensions1265586
+Node: VMS Installation Details1267271
+Node: VMS Running1269533
+Node: VMS GNV1273812
+Node: Bugs1274526
+Node: Bug definition1275438
+Node: Bug address1277942
+Node: Usenet1281330
+Node: Performance bugs1282339
+Node: Asking for help1285260
+Node: Maintainers1287222
+Node: Other Versions1288416
+Node: Installation summary1296268
+Node: Notes1297632
+Node: Compatibility Mode1298426
+Node: Additions1299208
+Node: Accessing The Source1300133
+Node: Adding Code1301570
+Node: New Ports1307789
+Node: Derived Files1312164
+Ref: Derived Files-Footnote-11317824
+Ref: Derived Files-Footnote-21317859
+Ref: Derived Files-Footnote-31318457
+Node: Future Extensions1318571
+Node: Implementation Limitations1319229
+Node: Extension Design1320439
+Node: Old Extension Problems1321583
+Ref: Old Extension Problems-Footnote-11323101
+Node: Extension New Mechanism Goals1323158
+Ref: Extension New Mechanism Goals-Footnote-11326522
+Node: Extension Other Design Decisions1326711
+Node: Extension Future Growth1328824
+Node: Notes summary1329430
+Node: Basic Concepts1330588
+Node: Basic High Level1331269
+Ref: figure-general-flow1331551
+Ref: figure-process-flow1332236
+Ref: Basic High Level-Footnote-11335537
+Node: Basic Data Typing1335722
+Node: Glossary1339050
+Node: Copying1370937
+Node: GNU Free Documentation License1408480
+Node: Index1433600

End Tag Table