aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1452
1 files changed, 791 insertions, 661 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 6b183df6..de53a993 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -382,6 +382,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()'.
@@ -491,6 +493,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"].
@@ -554,6 +557,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.
@@ -3227,7 +3231,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
@@ -7022,8 +7028,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
@@ -12855,6 +12861,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
@@ -12867,7 +12874,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
--------------------------------
@@ -12911,9 +12918,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
@@ -12939,7 +12961,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()'
@@ -13037,7 +13059,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
@@ -13622,7 +13644,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.
@@ -13768,7 +13790,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
@@ -13985,7 +14007,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
@@ -14302,7 +14324,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.
@@ -14484,7 +14506,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
@@ -14508,6 +14530,9 @@ contexts.
'"number"'
X is a number.
+ '"number|bool"'
+ X is a Boolean typed value (*note Boolean Typed Values::).
+
'"string"'
X is a string.
@@ -14582,7 +14607,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
@@ -15261,7 +15286,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
@@ -21014,6 +21039,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.
@@ -21023,7 +21049,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
===================================
@@ -21066,9 +21092,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
@@ -21087,7 +21157,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
@@ -21326,7 +21396,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
@@ -21471,7 +21541,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
@@ -21666,7 +21736,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':
@@ -21746,7 +21816,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
@@ -22008,7 +22078,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
@@ -22044,7 +22114,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
@@ -24401,18 +24471,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.
@@ -24471,11 +24533,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
@@ -24568,6 +24625,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
@@ -24632,7 +24690,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
..........................
@@ -24680,6 +24738,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
@@ -25626,7 +25742,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'.
@@ -25639,6 +25756,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
@@ -25654,6 +25772,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.
@@ -25964,6 +26083,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
@@ -26689,16 +26813,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
@@ -33575,8 +33700,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
@@ -35733,6 +35858,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)
@@ -36089,7 +36215,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)
@@ -37333,6 +37459,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)
@@ -38560,610 +38687,613 @@ Index

Tag Table:
Node: Top1200
-Node: Foreword345313
-Node: Foreword449755
-Node: Preface51287
-Ref: Preface-Footnote-154146
-Ref: Preface-Footnote-254255
-Ref: Preface-Footnote-354489
-Node: History54631
-Node: Names56983
-Ref: Names-Footnote-158087
-Node: This Manual58234
-Ref: This Manual-Footnote-164873
-Node: Conventions64973
-Node: Manual History67342
-Ref: Manual History-Footnote-170339
-Ref: Manual History-Footnote-270380
-Node: How To Contribute70454
-Node: Acknowledgments71380
-Node: Getting Started76317
-Node: Running gawk78756
-Node: One-shot79946
-Node: Read Terminal81209
-Node: Long83202
-Node: Executable Scripts84715
-Ref: Executable Scripts-Footnote-187348
-Node: Comments87451
-Node: Quoting89935
-Node: DOS Quoting95461
-Node: Sample Data Files97517
-Node: Very Simple100112
-Node: Two Rules106214
-Node: More Complex108099
-Node: Statements/Lines110431
-Ref: Statements/Lines-Footnote-1114915
-Node: Other Features115180
-Node: When116116
-Ref: When-Footnote-1117870
-Node: Intro Summary117935
-Node: Invoking Gawk118819
-Node: Command Line120333
-Node: Options121131
-Ref: Options-Footnote-1139045
-Ref: Options-Footnote-2139276
-Node: Other Arguments139301
-Node: Naming Standard Input143312
-Node: Environment Variables144522
-Node: AWKPATH Variable145080
-Ref: AWKPATH Variable-Footnote-1148492
-Ref: AWKPATH Variable-Footnote-2148526
-Node: AWKLIBPATH Variable148897
-Ref: AWKLIBPATH Variable-Footnote-1150594
-Node: Other Environment Variables150969
-Node: Exit Status154790
-Node: Include Files155467
-Node: Loading Shared Libraries159157
-Node: Obsolete160585
-Node: Undocumented161277
-Node: Invoking Summary161574
-Node: Regexp164415
-Node: Regexp Usage165869
-Node: Escape Sequences167906
-Node: Regexp Operators174147
-Node: Regexp Operator Details174632
-Ref: Regexp Operator Details-Footnote-1181996
-Node: Interval Expressions182143
-Ref: Interval Expressions-Footnote-1184343
-Node: Bracket Expressions184441
-Ref: table-char-classes186917
-Node: Leftmost Longest190243
-Node: Computed Regexps191546
-Node: GNU Regexp Operators194973
-Node: Case-sensitivity198710
-Ref: Case-sensitivity-Footnote-1201576
-Ref: Case-sensitivity-Footnote-2201811
-Node: Regexp Summary201919
-Node: Reading Files203385
-Node: Records205654
-Node: awk split records206729
-Node: gawk split records211429
-Ref: gawk split records-Footnote-1216503
-Node: Fields216540
-Node: Nonconstant Fields219281
-Ref: Nonconstant Fields-Footnote-1221517
-Node: Changing Fields221721
-Node: Field Separators227752
-Node: Default Field Splitting230450
-Node: Regexp Field Splitting231568
-Node: Single Character Fields235245
-Node: Command Line Field Separator236305
-Node: Full Line Fields239523
-Ref: Full Line Fields-Footnote-1241045
-Ref: Full Line Fields-Footnote-2241091
-Node: Field Splitting Summary241192
-Node: Constant Size243266
-Node: Fixed width data243998
-Node: Skipping intervening247465
-Node: Allowing trailing data248263
-Node: Fields with fixed data249300
-Node: Splitting By Content250818
-Ref: Splitting By Content-Footnote-1254654
-Node: More CSV254817
-Node: FS versus FPAT256432
-Node: Testing field creation257592
-Node: Multiple Line259217
-Node: Getline265494
-Node: Plain Getline267963
-Node: Getline/Variable270536
-Node: Getline/File271687
-Node: Getline/Variable/File273075
-Ref: Getline/Variable/File-Footnote-1274680
-Node: Getline/Pipe274768
-Node: Getline/Variable/Pipe277472
-Node: Getline/Coprocess278607
-Node: Getline/Variable/Coprocess279874
-Node: Getline Notes280616
-Node: Getline Summary283413
-Ref: table-getline-variants283837
-Node: Read Timeout284585
-Ref: Read Timeout-Footnote-1288491
-Node: Retrying Input288549
-Node: Command-line directories289748
-Node: Input Summary290654
-Node: Input Exercises293826
-Node: Printing294260
-Node: Print296094
-Node: Print Examples297551
-Node: Output Separators300331
-Node: OFMT302348
-Node: Printf303704
-Node: Basic Printf304489
-Node: Control Letters306063
-Node: Format Modifiers311227
-Node: Printf Examples317242
-Node: Redirection319728
-Node: Special FD326569
-Ref: Special FD-Footnote-1329737
-Node: Special Files329811
-Node: Other Inherited Files330428
-Node: Special Network331429
-Node: Special Caveats332289
-Node: Close Files And Pipes333238
-Ref: table-close-pipe-return-values340145
-Ref: Close Files And Pipes-Footnote-1340958
-Ref: Close Files And Pipes-Footnote-2341106
-Node: Nonfatal341258
-Node: Output Summary343596
-Node: Output Exercises344818
-Node: Expressions345497
-Node: Values346685
-Node: Constants347363
-Node: Scalar Constants348054
-Ref: Scalar Constants-Footnote-1350564
-Node: Nondecimal-numbers350814
-Node: Regexp Constants353815
-Node: Using Constant Regexps354341
-Node: Standard Regexp Constants354963
-Node: Strong Regexp Constants358151
-Node: Variables361864
-Node: Using Variables362521
-Node: Assignment Options364431
-Node: Conversion366902
-Node: Strings And Numbers367426
-Ref: Strings And Numbers-Footnote-1370489
-Node: Locale influences conversions370598
-Ref: table-locale-affects373356
-Node: All Operators373974
-Node: Arithmetic Ops374603
-Node: Concatenation377319
-Ref: Concatenation-Footnote-1380166
-Node: Assignment Ops380273
-Ref: table-assign-ops385264
-Node: Increment Ops386577
-Node: Truth Values and Conditions390037
-Node: Truth Values391111
-Node: Typing and Comparison392159
-Node: Variable Typing392979
-Ref: Variable Typing-Footnote-1399442
-Ref: Variable Typing-Footnote-2399514
-Node: Comparison Operators399591
-Ref: table-relational-ops400010
-Node: POSIX String Comparison403505
-Ref: POSIX String Comparison-Footnote-1405200
-Ref: POSIX String Comparison-Footnote-2405339
-Node: Boolean Ops405423
-Ref: Boolean Ops-Footnote-1409905
-Node: Conditional Exp409997
-Node: Function Calls411733
-Node: Precedence415610
-Node: Locales419269
-Node: Expressions Summary420901
-Node: Patterns and Actions423474
-Node: Pattern Overview424594
-Node: Regexp Patterns426271
-Node: Expression Patterns426813
-Node: Ranges430594
-Node: BEGIN/END433702
-Node: Using BEGIN/END434463
-Ref: Using BEGIN/END-Footnote-1437217
-Node: I/O And BEGIN/END437323
-Node: BEGINFILE/ENDFILE439636
-Node: Empty442867
-Node: Using Shell Variables443184
-Node: Action Overview445458
-Node: Statements447783
-Node: If Statement449631
-Node: While Statement451126
-Node: Do Statement453154
-Node: For Statement454302
-Node: Switch Statement457557
-Node: Break Statement459998
-Node: Continue Statement462090
-Node: Next Statement463917
-Node: Nextfile Statement466300
-Node: Exit Statement468989
-Node: Built-in Variables471392
-Node: User-modified472525
-Node: Auto-set480292
-Ref: Auto-set-Footnote-1497099
-Ref: Auto-set-Footnote-2497305
-Node: ARGC and ARGV497361
-Node: Pattern Action Summary501574
-Node: Arrays504004
-Node: Array Basics505333
-Node: Array Intro506177
-Ref: figure-array-elements508152
-Ref: Array Intro-Footnote-1510856
-Node: Reference to Elements510984
-Node: Assigning Elements513448
-Node: Array Example513939
-Node: Scanning an Array515698
-Node: Controlling Scanning518720
-Ref: Controlling Scanning-Footnote-1525176
-Node: Numeric Array Subscripts525492
-Node: Uninitialized Subscripts527676
-Node: Delete529295
-Ref: Delete-Footnote-1532047
-Node: Multidimensional532104
-Node: Multiscanning535199
-Node: Arrays of Arrays536790
-Node: Arrays Summary541558
-Node: Functions543651
-Node: Built-in544689
-Node: Calling Built-in545770
-Node: Numeric Functions547766
-Ref: Numeric Functions-Footnote-1551794
-Ref: Numeric Functions-Footnote-2552442
-Ref: Numeric Functions-Footnote-3552490
-Node: String Functions552762
-Ref: String Functions-Footnote-1577604
-Ref: String Functions-Footnote-2577732
-Ref: String Functions-Footnote-3577980
-Node: Gory Details578067
-Ref: table-sub-escapes579858
-Ref: table-sub-proposed581377
-Ref: table-posix-sub582740
-Ref: table-gensub-escapes584281
-Ref: Gory Details-Footnote-1585104
-Node: I/O Functions585258
-Ref: table-system-return-values591712
-Ref: I/O Functions-Footnote-1593792
-Ref: I/O Functions-Footnote-2593940
-Node: Time Functions594060
-Ref: Time Functions-Footnote-1604731
-Ref: Time Functions-Footnote-2604799
-Ref: Time Functions-Footnote-3604957
-Ref: Time Functions-Footnote-4605068
-Ref: Time Functions-Footnote-5605180
-Ref: Time Functions-Footnote-6605407
-Node: Bitwise Functions605673
-Ref: table-bitwise-ops606267
-Ref: Bitwise Functions-Footnote-1612330
-Ref: Bitwise Functions-Footnote-2612503
-Node: Type Functions612694
-Node: I18N Functions616023
-Node: User-defined617674
-Node: Definition Syntax618486
-Ref: Definition Syntax-Footnote-1624180
-Node: Function Example624251
-Ref: Function Example-Footnote-1627173
-Node: Function Calling627195
-Node: Calling A Function627783
-Node: Variable Scope628741
-Node: Pass By Value/Reference631735
-Node: Function Caveats634379
-Ref: Function Caveats-Footnote-1636426
-Node: Return Statement636546
-Node: Dynamic Typing639525
-Node: Indirect Calls640455
-Ref: Indirect Calls-Footnote-1650707
-Node: Functions Summary650835
-Node: Library Functions653540
-Ref: Library Functions-Footnote-1657147
-Ref: Library Functions-Footnote-2657290
-Node: Library Names657461
-Ref: Library Names-Footnote-1661128
-Ref: Library Names-Footnote-2661351
-Node: General Functions661437
-Node: Strtonum Function662619
-Node: Assert Function665641
-Node: Round Function668967
-Node: Cliff Random Function670507
-Node: Ordinal Functions671523
-Ref: Ordinal Functions-Footnote-1674586
-Ref: Ordinal Functions-Footnote-2674838
-Node: Join Function675048
-Ref: Join Function-Footnote-1676818
-Node: Getlocaltime Function677018
-Node: Readfile Function680760
-Node: Shell Quoting682737
-Node: Isnumeric Function684165
-Node: Data File Management685553
-Node: Filetrans Function686185
-Node: Rewind Function690281
-Node: File Checking692190
-Ref: File Checking-Footnote-1693524
-Node: Empty Files693725
-Node: Ignoring Assigns695704
-Node: Getopt Function697254
-Ref: Getopt Function-Footnote-1712477
-Node: Passwd Functions712677
-Ref: Passwd Functions-Footnote-1721516
-Node: Group Functions721604
-Ref: Group Functions-Footnote-1729502
-Node: Walking Arrays729709
-Node: Library Functions Summary732717
-Node: Library Exercises734123
-Node: Sample Programs734588
-Node: Running Examples735358
-Node: Clones736086
-Node: Cut Program737310
-Node: Egrep Program747450
-Node: Id Program756451
-Node: Split Program766386
-Ref: Split Program-Footnote-1776279
-Node: Tee Program776452
-Node: Uniq Program779242
-Node: Wc Program786830
-Node: Bytes vs. Characters787217
-Node: Using extensions788765
-Node: wc program789519
-Node: Miscellaneous Programs794384
-Node: Dupword Program795597
-Node: Alarm Program797627
-Node: Translate Program802482
-Ref: Translate Program-Footnote-1807047
-Node: Labels Program807317
-Ref: Labels Program-Footnote-1810668
-Node: Word Sorting810752
-Node: History Sorting814824
-Node: Extract Program817049
-Node: Simple Sed825103
-Node: Igawk Program828177
-Ref: Igawk Program-Footnote-1842508
-Ref: Igawk Program-Footnote-2842710
-Ref: Igawk Program-Footnote-3842832
-Node: Anagram Program842947
-Node: Signature Program846009
-Node: Programs Summary847256
-Node: Programs Exercises848470
-Ref: Programs Exercises-Footnote-1852600
-Node: Advanced Features852686
-Node: Nondecimal Data854753
-Node: Array Sorting856344
-Node: Controlling Array Traversal857044
-Ref: Controlling Array Traversal-Footnote-1865412
-Node: Array Sorting Functions865530
-Ref: Array Sorting Functions-Footnote-1870904
-Node: Two-way I/O871100
-Ref: Two-way I/O-Footnote-1878826
-Ref: Two-way I/O-Footnote-2879013
-Node: TCP/IP Networking879095
-Node: Profiling882213
-Node: Extension Philosophy891522
-Node: Advanced Features Summary893001
-Node: Internationalization895016
-Node: I18N and L10N896690
-Node: Explaining gettext897377
-Ref: Explaining gettext-Footnote-1903269
-Ref: Explaining gettext-Footnote-2903454
-Node: Programmer i18n903619
-Ref: Programmer i18n-Footnote-1908568
-Node: Translator i18n908617
-Node: String Extraction909411
-Ref: String Extraction-Footnote-1910543
-Node: Printf Ordering910629
-Ref: Printf Ordering-Footnote-1913415
-Node: I18N Portability913479
-Ref: I18N Portability-Footnote-1915935
-Node: I18N Example915998
-Ref: I18N Example-Footnote-1919273
-Ref: I18N Example-Footnote-2919346
-Node: Gawk I18N919455
-Node: I18N Summary920104
-Node: Debugger921445
-Node: Debugging922445
-Node: Debugging Concepts922886
-Node: Debugging Terms924695
-Node: Awk Debugging927270
-Ref: Awk Debugging-Footnote-1928215
-Node: Sample Debugging Session928347
-Node: Debugger Invocation928881
-Node: Finding The Bug930267
-Node: List of Debugger Commands936741
-Node: Breakpoint Control938074
-Node: Debugger Execution Control941768
-Node: Viewing And Changing Data945130
-Node: Execution Stack948671
-Node: Debugger Info950308
-Node: Miscellaneous Debugger Commands954379
-Node: Readline Support959441
-Node: Limitations960337
-Node: Debugging Summary962891
-Node: Namespaces964170
-Node: Global Namespace965281
-Node: Qualified Names966679
-Node: Default Namespace967678
-Node: Changing The Namespace968419
-Node: Naming Rules970033
-Node: Internal Name Management971881
-Node: Namespace Example972923
-Node: Namespace And Features975485
-Node: Namespace Summary976920
-Node: Arbitrary Precision Arithmetic978397
-Node: Computer Arithmetic979884
-Ref: table-numeric-ranges983650
-Ref: table-floating-point-ranges984143
-Ref: Computer Arithmetic-Footnote-1984801
-Node: Math Definitions984858
-Ref: table-ieee-formats988174
-Ref: Math Definitions-Footnote-1988777
-Node: MPFR features988882
-Node: FP Math Caution990600
-Ref: FP Math Caution-Footnote-1991672
-Node: Inexactness of computations992041
-Node: Inexact representation993001
-Node: Comparing FP Values994361
-Node: Errors accumulate995602
-Node: Getting Accuracy997035
-Node: Try To Round999745
-Node: Setting precision1000644
-Ref: table-predefined-precision-strings1001341
-Node: Setting the rounding mode1003171
-Ref: table-gawk-rounding-modes1003545
-Ref: Setting the rounding mode-Footnote-11007476
-Node: Arbitrary Precision Integers1007655
-Ref: Arbitrary Precision Integers-Footnote-11010830
-Node: Checking for MPFR1010979
-Node: POSIX Floating Point Problems1012453
-Ref: POSIX Floating Point Problems-Footnote-11016738
-Node: Floating point summary1016776
-Node: Dynamic Extensions1018966
-Node: Extension Intro1020519
-Node: Plugin License1021785
-Node: Extension Mechanism Outline1022582
-Ref: figure-load-extension1023021
-Ref: figure-register-new-function1024586
-Ref: figure-call-new-function1025678
-Node: Extension API Description1027740
-Node: Extension API Functions Introduction1029453
-Ref: table-api-std-headers1031289
-Node: General Data Types1035538
-Ref: General Data Types-Footnote-11044168
-Node: Memory Allocation Functions1044467
-Ref: Memory Allocation Functions-Footnote-11048968
-Node: Constructor Functions1049067
-Node: API Ownership of MPFR and GMP Values1052533
-Node: Registration Functions1053846
-Node: Extension Functions1054546
-Node: Exit Callback Functions1059868
-Node: Extension Version String1061118
-Node: Input Parsers1061781
-Node: Output Wrappers1074502
-Node: Two-way processors1079014
-Node: Printing Messages1081279
-Ref: Printing Messages-Footnote-11082450
-Node: Updating ERRNO1082603
-Node: Requesting Values1083342
-Ref: table-value-types-returned1084079
-Node: Accessing Parameters1085015
-Node: Symbol Table Access1086252
-Node: Symbol table by name1086764
-Ref: Symbol table by name-Footnote-11089789
-Node: Symbol table by cookie1089917
-Ref: Symbol table by cookie-Footnote-11094102
-Node: Cached values1094166
-Ref: Cached values-Footnote-11097702
-Node: Array Manipulation1097855
-Ref: Array Manipulation-Footnote-11098946
-Node: Array Data Types1098983
-Ref: Array Data Types-Footnote-11101641
-Node: Array Functions1101733
-Node: Flattening Arrays1106231
-Node: Creating Arrays1113207
-Node: Redirection API1117974
-Node: Extension API Variables1120807
-Node: Extension Versioning1121518
-Ref: gawk-api-version1121947
-Node: Extension GMP/MPFR Versioning1123678
-Node: Extension API Informational Variables1125306
-Node: Extension API Boilerplate1126379
-Node: Changes from API V11130353
-Node: Finding Extensions1131925
-Node: Extension Example1132484
-Node: Internal File Description1133282
-Node: Internal File Ops1137362
-Ref: Internal File Ops-Footnote-11148712
-Node: Using Internal File Ops1148852
-Ref: Using Internal File Ops-Footnote-11151235
-Node: Extension Samples1151509
-Node: Extension Sample File Functions1153038
-Node: Extension Sample Fnmatch1160687
-Node: Extension Sample Fork1162174
-Node: Extension Sample Inplace1163392
-Node: Extension Sample Ord1167018
-Node: Extension Sample Readdir1167854
-Ref: table-readdir-file-types1168743
-Node: Extension Sample Revout1169810
-Node: Extension Sample Rev2way1170399
-Node: Extension Sample Read write array1171139
-Node: Extension Sample Readfile1173081
-Node: Extension Sample Time1174176
-Node: Extension Sample API Tests1175928
-Node: gawkextlib1176420
-Node: Extension summary1179338
-Node: Extension Exercises1183040
-Node: Language History1184282
-Node: V7/SVR3.11185938
-Node: SVR41188090
-Node: POSIX1189524
-Node: BTL1190905
-Node: POSIX/GNU1191634
-Node: Feature History1197412
-Node: Common Extensions1214587
-Node: Ranges and Locales1215870
-Ref: Ranges and Locales-Footnote-11220486
-Ref: Ranges and Locales-Footnote-21220513
-Ref: Ranges and Locales-Footnote-31220748
-Node: Contributors1220971
-Node: History summary1226968
-Node: Installation1228348
-Node: Gawk Distribution1229292
-Node: Getting1229776
-Node: Extracting1230739
-Node: Distribution contents1232377
-Node: Unix Installation1239520
-Node: Quick Installation1240324
-Node: Compiling with MPFR1242800
-Node: Shell Startup Files1243490
-Node: Additional Configuration Options1244579
-Node: Configuration Philosophy1246894
-Node: Compiling from Git1249290
-Node: Building the Documentation1249845
-Node: Non-Unix Installation1251229
-Node: PC Installation1251689
-Node: PC Binary Installation1252527
-Node: PC Compiling1252962
-Node: PC Using1254079
-Node: Cygwin1257632
-Node: MSYS1258856
-Node: VMS Installation1259458
-Node: VMS Compilation1260177
-Ref: VMS Compilation-Footnote-11261406
-Node: VMS Dynamic Extensions1261464
-Node: VMS Installation Details1263149
-Node: VMS Running1265411
-Node: VMS GNV1269690
-Node: Bugs1270404
-Node: Bug definition1271316
-Node: Bug address1274252
-Node: Usenet1277640
-Node: Performance bugs1278829
-Node: Asking for help1281750
-Node: Maintainers1283717
-Node: Other Versions1284911
-Node: Installation summary1292763
-Node: Notes1294127
-Node: Compatibility Mode1294921
-Node: Additions1295703
-Node: Accessing The Source1296628
-Node: Adding Code1298065
-Node: New Ports1304284
-Node: Derived Files1308659
-Ref: Derived Files-Footnote-11314319
-Ref: Derived Files-Footnote-21314354
-Ref: Derived Files-Footnote-31314952
-Node: Future Extensions1315066
-Node: Implementation Limitations1315724
-Node: Extension Design1316934
-Node: Old Extension Problems1318078
-Ref: Old Extension Problems-Footnote-11319596
-Node: Extension New Mechanism Goals1319653
-Ref: Extension New Mechanism Goals-Footnote-11323017
-Node: Extension Other Design Decisions1323206
-Node: Extension Future Growth1325319
-Node: Notes summary1325925
-Node: Basic Concepts1327083
-Node: Basic High Level1327764
-Ref: figure-general-flow1328046
-Ref: figure-process-flow1328731
-Ref: Basic High Level-Footnote-11332032
-Node: Basic Data Typing1332217
-Node: Glossary1335545
-Node: Copying1367430
-Node: GNU Free Documentation License1404973
-Node: Index1430093
+Node: Foreword345584
+Node: Foreword450026
+Node: Preface51558
+Ref: Preface-Footnote-154417
+Ref: Preface-Footnote-254526
+Ref: Preface-Footnote-354760
+Node: History54902
+Node: Names57254
+Ref: Names-Footnote-158358
+Node: This Manual58505
+Ref: This Manual-Footnote-165144
+Node: Conventions65244
+Node: Manual History67613
+Ref: Manual History-Footnote-170610
+Ref: Manual History-Footnote-270651
+Node: How To Contribute70725
+Node: Acknowledgments71651
+Node: Getting Started76588
+Node: Running gawk79027
+Node: One-shot80217
+Node: Read Terminal81480
+Node: Long83473
+Node: Executable Scripts84986
+Ref: Executable Scripts-Footnote-187619
+Node: Comments87722
+Node: Quoting90206
+Node: DOS Quoting95732
+Node: Sample Data Files97788
+Node: Very Simple100383
+Node: Two Rules106485
+Node: More Complex108370
+Node: Statements/Lines110702
+Ref: Statements/Lines-Footnote-1115186
+Node: Other Features115451
+Node: When116387
+Ref: When-Footnote-1118141
+Node: Intro Summary118206
+Node: Invoking Gawk119090
+Node: Command Line120604
+Node: Options121402
+Ref: Options-Footnote-1139316
+Ref: Options-Footnote-2139547
+Node: Other Arguments139572
+Node: Naming Standard Input143583
+Node: Environment Variables144793
+Node: AWKPATH Variable145351
+Ref: AWKPATH Variable-Footnote-1148763
+Ref: AWKPATH Variable-Footnote-2148797
+Node: AWKLIBPATH Variable149168
+Ref: AWKLIBPATH Variable-Footnote-1150865
+Node: Other Environment Variables151240
+Node: Exit Status155192
+Node: Include Files155869
+Node: Loading Shared Libraries159559
+Node: Obsolete160987
+Node: Undocumented161679
+Node: Invoking Summary161976
+Node: Regexp164817
+Node: Regexp Usage166271
+Node: Escape Sequences168308
+Node: Regexp Operators174549
+Node: Regexp Operator Details175034
+Ref: Regexp Operator Details-Footnote-1182398
+Node: Interval Expressions182545
+Ref: Interval Expressions-Footnote-1184745
+Node: Bracket Expressions184843
+Ref: table-char-classes187319
+Node: Leftmost Longest190645
+Node: Computed Regexps191948
+Node: GNU Regexp Operators195375
+Node: Case-sensitivity199112
+Ref: Case-sensitivity-Footnote-1201978
+Ref: Case-sensitivity-Footnote-2202213
+Node: Regexp Summary202321
+Node: Reading Files203787
+Node: Records206056
+Node: awk split records207131
+Node: gawk split records211831
+Ref: gawk split records-Footnote-1216905
+Node: Fields216942
+Node: Nonconstant Fields219683
+Ref: Nonconstant Fields-Footnote-1221919
+Node: Changing Fields222123
+Node: Field Separators228154
+Node: Default Field Splitting230852
+Node: Regexp Field Splitting231970
+Node: Single Character Fields235647
+Node: Command Line Field Separator236707
+Node: Full Line Fields239925
+Ref: Full Line Fields-Footnote-1241447
+Ref: Full Line Fields-Footnote-2241493
+Node: Field Splitting Summary241594
+Node: Constant Size243668
+Node: Fixed width data244400
+Node: Skipping intervening247867
+Node: Allowing trailing data248665
+Node: Fields with fixed data249702
+Node: Splitting By Content251220
+Ref: Splitting By Content-Footnote-1255056
+Node: More CSV255219
+Node: FS versus FPAT256834
+Node: Testing field creation257994
+Node: Multiple Line259619
+Node: Getline265896
+Node: Plain Getline268365
+Node: Getline/Variable270938
+Node: Getline/File272089
+Node: Getline/Variable/File273477
+Ref: Getline/Variable/File-Footnote-1275082
+Node: Getline/Pipe275170
+Node: Getline/Variable/Pipe277874
+Node: Getline/Coprocess279009
+Node: Getline/Variable/Coprocess280276
+Node: Getline Notes281018
+Node: Getline Summary283815
+Ref: table-getline-variants284239
+Node: Read Timeout284987
+Ref: Read Timeout-Footnote-1288893
+Node: Retrying Input288951
+Node: Command-line directories290150
+Node: Input Summary291056
+Node: Input Exercises294228
+Node: Printing294662
+Node: Print296496
+Node: Print Examples297953
+Node: Output Separators300733
+Node: OFMT302750
+Node: Printf304106
+Node: Basic Printf304891
+Node: Control Letters306465
+Node: Format Modifiers311627
+Node: Printf Examples317642
+Node: Redirection320128
+Node: Special FD326969
+Ref: Special FD-Footnote-1330137
+Node: Special Files330211
+Node: Other Inherited Files330828
+Node: Special Network331829
+Node: Special Caveats332689
+Node: Close Files And Pipes333638
+Ref: table-close-pipe-return-values340545
+Ref: Close Files And Pipes-Footnote-1341358
+Ref: Close Files And Pipes-Footnote-2341506
+Node: Nonfatal341658
+Node: Output Summary343996
+Node: Output Exercises345218
+Node: Expressions345897
+Node: Values347085
+Node: Constants347763
+Node: Scalar Constants348454
+Ref: Scalar Constants-Footnote-1350964
+Node: Nondecimal-numbers351214
+Node: Regexp Constants354215
+Node: Using Constant Regexps354741
+Node: Standard Regexp Constants355363
+Node: Strong Regexp Constants358551
+Node: Variables362264
+Node: Using Variables362921
+Node: Assignment Options364831
+Node: Conversion367302
+Node: Strings And Numbers367826
+Ref: Strings And Numbers-Footnote-1370889
+Node: Locale influences conversions370998
+Ref: table-locale-affects373756
+Node: All Operators374374
+Node: Arithmetic Ops375003
+Node: Concatenation377719
+Ref: Concatenation-Footnote-1380566
+Node: Assignment Ops380673
+Ref: table-assign-ops385664
+Node: Increment Ops386977
+Node: Truth Values and Conditions390437
+Node: Truth Values391511
+Node: Typing and Comparison392559
+Node: Variable Typing393379
+Ref: Variable Typing-Footnote-1399842
+Ref: Variable Typing-Footnote-2399914
+Node: Comparison Operators399991
+Ref: table-relational-ops400410
+Node: POSIX String Comparison403905
+Ref: POSIX String Comparison-Footnote-1405600
+Ref: POSIX String Comparison-Footnote-2405739
+Node: Boolean Ops405823
+Ref: Boolean Ops-Footnote-1410305
+Node: Conditional Exp410397
+Node: Function Calls412133
+Node: Precedence416010
+Node: Locales419669
+Node: Expressions Summary421301
+Node: Patterns and Actions423874
+Node: Pattern Overview424994
+Node: Regexp Patterns426671
+Node: Expression Patterns427213
+Node: Ranges430994
+Node: BEGIN/END434102
+Node: Using BEGIN/END434863
+Ref: Using BEGIN/END-Footnote-1437617
+Node: I/O And BEGIN/END437723
+Node: BEGINFILE/ENDFILE440036
+Node: Empty443267
+Node: Using Shell Variables443584
+Node: Action Overview445858
+Node: Statements448183
+Node: If Statement450031
+Node: While Statement451526
+Node: Do Statement453554
+Node: For Statement454702
+Node: Switch Statement457957
+Node: Break Statement460398
+Node: Continue Statement462490
+Node: Next Statement464317
+Node: Nextfile Statement466700
+Node: Exit Statement469389
+Node: Built-in Variables471792
+Node: User-modified472925
+Node: Auto-set480692
+Ref: Auto-set-Footnote-1497499
+Ref: Auto-set-Footnote-2497705
+Node: ARGC and ARGV497761
+Node: Pattern Action Summary501974
+Node: Arrays504404
+Node: Array Basics505733
+Node: Array Intro506577
+Ref: figure-array-elements508552
+Ref: Array Intro-Footnote-1511256
+Node: Reference to Elements511384
+Node: Assigning Elements513848
+Node: Array Example514339
+Node: Scanning an Array516098
+Node: Controlling Scanning519120
+Ref: Controlling Scanning-Footnote-1525576
+Node: Numeric Array Subscripts525892
+Node: Uninitialized Subscripts528076
+Node: Delete529695
+Ref: Delete-Footnote-1532447
+Node: Multidimensional532504
+Node: Multiscanning535599
+Node: Arrays of Arrays537190
+Node: Arrays Summary541958
+Node: Functions544051
+Node: Built-in545089
+Node: Calling Built-in546242
+Node: Boolean Functions548238
+Node: Numeric Functions548792
+Ref: Numeric Functions-Footnote-1552819
+Ref: Numeric Functions-Footnote-2553467
+Ref: Numeric Functions-Footnote-3553515
+Node: String Functions553787
+Ref: String Functions-Footnote-1578629
+Ref: String Functions-Footnote-2578757
+Ref: String Functions-Footnote-3579005
+Node: Gory Details579092
+Ref: table-sub-escapes580883
+Ref: table-sub-proposed582402
+Ref: table-posix-sub583765
+Ref: table-gensub-escapes585306
+Ref: Gory Details-Footnote-1586129
+Node: I/O Functions586283
+Ref: table-system-return-values592737
+Ref: I/O Functions-Footnote-1594817
+Ref: I/O Functions-Footnote-2594965
+Node: Time Functions595085
+Ref: Time Functions-Footnote-1605756
+Ref: Time Functions-Footnote-2605824
+Ref: Time Functions-Footnote-3605982
+Ref: Time Functions-Footnote-4606093
+Ref: Time Functions-Footnote-5606205
+Ref: Time Functions-Footnote-6606432
+Node: Bitwise Functions606698
+Ref: table-bitwise-ops607292
+Ref: Bitwise Functions-Footnote-1613355
+Ref: Bitwise Functions-Footnote-2613528
+Node: Type Functions613719
+Node: I18N Functions617139
+Node: User-defined618790
+Node: Definition Syntax619602
+Ref: Definition Syntax-Footnote-1625296
+Node: Function Example625367
+Ref: Function Example-Footnote-1628289
+Node: Function Calling628311
+Node: Calling A Function628899
+Node: Variable Scope629857
+Node: Pass By Value/Reference632851
+Node: Function Caveats635495
+Ref: Function Caveats-Footnote-1637542
+Node: Return Statement637662
+Node: Dynamic Typing640641
+Node: Indirect Calls641571
+Ref: Indirect Calls-Footnote-1651826
+Node: Functions Summary651954
+Node: Library Functions654659
+Ref: Library Functions-Footnote-1658266
+Ref: Library Functions-Footnote-2658409
+Node: Library Names658580
+Ref: Library Names-Footnote-1662247
+Ref: Library Names-Footnote-2662470
+Node: General Functions662556
+Node: Strtonum Function663738
+Node: Assert Function666760
+Node: Round Function670086
+Node: Cliff Random Function671626
+Node: Ordinal Functions672642
+Ref: Ordinal Functions-Footnote-1675705
+Ref: Ordinal Functions-Footnote-2675957
+Node: Join Function676167
+Ref: Join Function-Footnote-1677937
+Node: Getlocaltime Function678137
+Node: Readfile Function681879
+Node: Shell Quoting683856
+Node: Isnumeric Function685284
+Node: Data File Management686672
+Node: Filetrans Function687304
+Node: Rewind Function691400
+Node: File Checking693309
+Ref: File Checking-Footnote-1694643
+Node: Empty Files694844
+Node: Ignoring Assigns696823
+Node: Getopt Function698373
+Ref: Getopt Function-Footnote-1713596
+Node: Passwd Functions713796
+Ref: Passwd Functions-Footnote-1722635
+Node: Group Functions722723
+Ref: Group Functions-Footnote-1730621
+Node: Walking Arrays730828
+Node: Library Functions Summary733836
+Node: Library Exercises735242
+Node: Sample Programs735707
+Node: Running Examples736477
+Node: Clones737205
+Node: Cut Program738429
+Node: Egrep Program748569
+Node: Id Program757570
+Node: Split Program767505
+Ref: Split Program-Footnote-1777398
+Node: Tee Program777571
+Node: Uniq Program780361
+Node: Wc Program787949
+Node: Bytes vs. Characters788336
+Node: Using extensions789884
+Node: wc program790638
+Node: Miscellaneous Programs795503
+Node: Dupword Program796716
+Node: Alarm Program798746
+Node: Translate Program803601
+Ref: Translate Program-Footnote-1808166
+Node: Labels Program808436
+Ref: Labels Program-Footnote-1811787
+Node: Word Sorting811871
+Node: History Sorting815943
+Node: Extract Program818168
+Node: Simple Sed826222
+Node: Igawk Program829296
+Ref: Igawk Program-Footnote-1843627
+Ref: Igawk Program-Footnote-2843829
+Ref: Igawk Program-Footnote-3843951
+Node: Anagram Program844066
+Node: Signature Program847128
+Node: Programs Summary848375
+Node: Programs Exercises849589
+Ref: Programs Exercises-Footnote-1853719
+Node: Advanced Features853805
+Node: Nondecimal Data855936
+Node: Boolean Typed Values857534
+Node: Array Sorting859415
+Node: Controlling Array Traversal860120
+Ref: Controlling Array Traversal-Footnote-1868488
+Node: Array Sorting Functions868606
+Ref: Array Sorting Functions-Footnote-1873980
+Node: Two-way I/O874176
+Ref: Two-way I/O-Footnote-1881902
+Ref: Two-way I/O-Footnote-2882089
+Node: TCP/IP Networking882171
+Node: Profiling885289
+Node: Extension Philosophy894598
+Node: Advanced Features Summary896077
+Node: Internationalization898092
+Node: I18N and L10N899766
+Node: Explaining gettext900453
+Ref: Explaining gettext-Footnote-1906345
+Ref: Explaining gettext-Footnote-2906530
+Node: Programmer i18n906695
+Ref: Programmer i18n-Footnote-1911644
+Node: Translator i18n911693
+Node: String Extraction912487
+Ref: String Extraction-Footnote-1913619
+Node: Printf Ordering913705
+Ref: Printf Ordering-Footnote-1916491
+Node: I18N Portability916555
+Ref: I18N Portability-Footnote-1919011
+Node: I18N Example919074
+Ref: I18N Example-Footnote-1922349
+Ref: I18N Example-Footnote-2922422
+Node: Gawk I18N922531
+Node: I18N Summary923180
+Node: Debugger924521
+Node: Debugging925521
+Node: Debugging Concepts925962
+Node: Debugging Terms927771
+Node: Awk Debugging930346
+Ref: Awk Debugging-Footnote-1931291
+Node: Sample Debugging Session931423
+Node: Debugger Invocation931957
+Node: Finding The Bug933343
+Node: List of Debugger Commands939817
+Node: Breakpoint Control941150
+Node: Debugger Execution Control944844
+Node: Viewing And Changing Data948206
+Node: Execution Stack951747
+Node: Debugger Info953384
+Node: Miscellaneous Debugger Commands957455
+Node: Readline Support962517
+Node: Limitations963413
+Node: Debugging Summary965967
+Node: Namespaces967246
+Node: Global Namespace968357
+Node: Qualified Names969755
+Node: Default Namespace970754
+Node: Changing The Namespace971495
+Node: Naming Rules973109
+Node: Internal Name Management974957
+Node: Namespace Example975999
+Node: Namespace And Features978561
+Node: Namespace Summary979996
+Node: Arbitrary Precision Arithmetic981473
+Node: Computer Arithmetic982960
+Ref: table-numeric-ranges986726
+Ref: table-floating-point-ranges987219
+Ref: Computer Arithmetic-Footnote-1987877
+Node: Math Definitions987934
+Ref: table-ieee-formats990910
+Node: MPFR features991477
+Node: FP Math Caution993195
+Ref: FP Math Caution-Footnote-1994267
+Node: Inexactness of computations994636
+Node: Inexact representation995667
+Node: Comparing FP Values997027
+Node: Errors accumulate998268
+Node: Strange values999724
+Ref: Strange values-Footnote-11002312
+Node: Getting Accuracy1002417
+Node: Try To Round1005127
+Node: Setting precision1006026
+Ref: table-predefined-precision-strings1006723
+Node: Setting the rounding mode1008553
+Ref: table-gawk-rounding-modes1008927
+Ref: Setting the rounding mode-Footnote-11012858
+Node: Arbitrary Precision Integers1013037
+Ref: Arbitrary Precision Integers-Footnote-11016212
+Node: Checking for MPFR1016361
+Node: POSIX Floating Point Problems1017835
+Ref: POSIX Floating Point Problems-Footnote-11022120
+Node: Floating point summary1022158
+Node: Dynamic Extensions1024348
+Node: Extension Intro1025901
+Node: Plugin License1027167
+Node: Extension Mechanism Outline1027964
+Ref: figure-load-extension1028403
+Ref: figure-register-new-function1029968
+Ref: figure-call-new-function1031060
+Node: Extension API Description1033122
+Node: Extension API Functions Introduction1034835
+Ref: table-api-std-headers1036671
+Node: General Data Types1040920
+Ref: General Data Types-Footnote-11049626
+Node: Memory Allocation Functions1049925
+Ref: Memory Allocation Functions-Footnote-11054426
+Node: Constructor Functions1054525
+Node: API Ownership of MPFR and GMP Values1058178
+Node: Registration Functions1059491
+Node: Extension Functions1060191
+Node: Exit Callback Functions1065513
+Node: Extension Version String1066763
+Node: Input Parsers1067426
+Node: Output Wrappers1080147
+Node: Two-way processors1084659
+Node: Printing Messages1086924
+Ref: Printing Messages-Footnote-11088095
+Node: Updating ERRNO1088248
+Node: Requesting Values1088987
+Ref: table-value-types-returned1089724
+Node: Accessing Parameters1090832
+Node: Symbol Table Access1092069
+Node: Symbol table by name1092581
+Ref: Symbol table by name-Footnote-11095606
+Node: Symbol table by cookie1095734
+Ref: Symbol table by cookie-Footnote-11099919
+Node: Cached values1099983
+Ref: Cached values-Footnote-11103519
+Node: Array Manipulation1103672
+Ref: Array Manipulation-Footnote-11104763
+Node: Array Data Types1104800
+Ref: Array Data Types-Footnote-11107458
+Node: Array Functions1107550
+Node: Flattening Arrays1112048
+Node: Creating Arrays1119024
+Node: Redirection API1123791
+Node: Extension API Variables1126624
+Node: Extension Versioning1127335
+Ref: gawk-api-version1127764
+Node: Extension GMP/MPFR Versioning1129495
+Node: Extension API Informational Variables1131123
+Node: Extension API Boilerplate1132196
+Node: Changes from API V11136170
+Node: Finding Extensions1137742
+Node: Extension Example1138301
+Node: Internal File Description1139099
+Node: Internal File Ops1143179
+Ref: Internal File Ops-Footnote-11154529
+Node: Using Internal File Ops1154669
+Ref: Using Internal File Ops-Footnote-11157052
+Node: Extension Samples1157326
+Node: Extension Sample File Functions1158855
+Node: Extension Sample Fnmatch1166504
+Node: Extension Sample Fork1167991
+Node: Extension Sample Inplace1169209
+Node: Extension Sample Ord1172835
+Node: Extension Sample Readdir1173671
+Ref: table-readdir-file-types1174560
+Node: Extension Sample Revout1175627
+Node: Extension Sample Rev2way1176216
+Node: Extension Sample Read write array1176956
+Node: Extension Sample Readfile1178898
+Node: Extension Sample Time1179993
+Node: Extension Sample API Tests1181745
+Node: gawkextlib1182237
+Node: Extension summary1185155
+Node: Extension Exercises1188857
+Node: Language History1190099
+Node: V7/SVR3.11191755
+Node: SVR41193907
+Node: POSIX1195341
+Node: BTL1196722
+Node: POSIX/GNU1197451
+Node: Feature History1203229
+Node: Common Extensions1220404
+Node: Ranges and Locales1221687
+Ref: Ranges and Locales-Footnote-11226303
+Ref: Ranges and Locales-Footnote-21226330
+Ref: Ranges and Locales-Footnote-31226565
+Node: Contributors1226788
+Node: History summary1232785
+Node: Installation1234165
+Node: Gawk Distribution1235109
+Node: Getting1235593
+Node: Extracting1236556
+Node: Distribution contents1238194
+Node: Unix Installation1245337
+Node: Quick Installation1246141
+Node: Compiling with MPFR1248617
+Node: Shell Startup Files1249307
+Node: Additional Configuration Options1250396
+Node: Configuration Philosophy1252711
+Node: Compiling from Git1255107
+Node: Building the Documentation1255662
+Node: Non-Unix Installation1257046
+Node: PC Installation1257506
+Node: PC Binary Installation1258344
+Node: PC Compiling1258779
+Node: PC Using1259896
+Node: Cygwin1263449
+Node: MSYS1264673
+Node: VMS Installation1265275
+Node: VMS Compilation1265994
+Ref: VMS Compilation-Footnote-11267223
+Node: VMS Dynamic Extensions1267281
+Node: VMS Installation Details1268966
+Node: VMS Running1271228
+Node: VMS GNV1275507
+Node: Bugs1276221
+Node: Bug definition1277133
+Node: Bug address1280069
+Node: Usenet1283457
+Node: Performance bugs1284646
+Node: Asking for help1287567
+Node: Maintainers1289534
+Node: Other Versions1290728
+Node: Installation summary1298580
+Node: Notes1299944
+Node: Compatibility Mode1300738
+Node: Additions1301520
+Node: Accessing The Source1302445
+Node: Adding Code1303882
+Node: New Ports1310101
+Node: Derived Files1314476
+Ref: Derived Files-Footnote-11320136
+Ref: Derived Files-Footnote-21320171
+Ref: Derived Files-Footnote-31320769
+Node: Future Extensions1320883
+Node: Implementation Limitations1321541
+Node: Extension Design1322751
+Node: Old Extension Problems1323895
+Ref: Old Extension Problems-Footnote-11325413
+Node: Extension New Mechanism Goals1325470
+Ref: Extension New Mechanism Goals-Footnote-11328834
+Node: Extension Other Design Decisions1329023
+Node: Extension Future Growth1331136
+Node: Notes summary1331742
+Node: Basic Concepts1332900
+Node: Basic High Level1333581
+Ref: figure-general-flow1333863
+Ref: figure-process-flow1334548
+Ref: Basic High Level-Footnote-11337849
+Node: Basic Data Typing1338034
+Node: Glossary1341362
+Node: Copying1373249
+Node: GNU Free Documentation License1410792
+Node: Index1435912

End Tag Table