aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1440
1 files changed, 785 insertions, 655 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 5eef11f6..55ddd990 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -381,6 +381,8 @@ in (a) below. A copy of the license is included in the section entitled
* Arrays Summary:: Summary of arrays.
* Built-in:: Summarizes the built-in functions.
* Calling Built-in:: How to call built-in functions.
+* Boolean Functions:: A function that returns Boolean
+ values.
* Numeric Functions:: Functions that work with numbers,
including 'int()', 'sin()'
and 'rand()'.
@@ -488,6 +490,7 @@ in (a) below. A copy of the license is included in the section entitled
* Programs Summary:: Summary of programs.
* Programs Exercises:: Exercises.
* Nondecimal Data:: Allowing nondecimal input data.
+* Boolean Typed Values:: Values with 'number|bool' type.
* Array Sorting:: Facilities for controlling array
traversal and sorting arrays.
* Controlling Array Traversal:: How to use PROCINFO["sorted_in"].
@@ -551,6 +554,7 @@ in (a) below. A copy of the license is included in the section entitled
* Inexact representation:: Numbers are not exactly represented.
* Comparing FP Values:: How to compare floating point values.
* Errors accumulate:: Errors get bigger as they go.
+* Strange values:: A few words about infinities and NaNs.
* Getting Accuracy:: Getting more accuracy takes some work.
* Try To Round:: Add digits and round.
* Setting precision:: How to set the precision.
@@ -3221,7 +3225,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
@@ -6972,8 +6978,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
@@ -12781,6 +12787,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
@@ -12793,7 +12800,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
--------------------------------
@@ -12837,9 +12844,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
@@ -12865,7 +12887,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()'
@@ -12963,7 +12985,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
@@ -13531,7 +13553,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.
@@ -13677,7 +13699,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
@@ -13894,7 +13916,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
@@ -14211,7 +14233,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.
@@ -14393,7 +14415,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
@@ -14417,6 +14439,9 @@ contexts.
'"number"'
X is a number.
+ '"number|bool"'
+ X is a Boolean typed value (*note Boolean Typed Values::).
+
'"string"'
X is a string.
@@ -14478,7 +14503,7 @@ arguments from untyped to unassigned.

File: gawk.info, Node: I18N Functions, Prev: Type Functions, Up: Built-in
-9.1.8 String-Translation Functions
+9.1.9 String-Translation Functions
----------------------------------
'gawk' provides facilities for internationalizing 'awk' programs. These
@@ -15157,7 +15182,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
@@ -20872,6 +20897,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.
@@ -20881,7 +20907,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
===================================
@@ -20924,9 +20950,53 @@ request it.
This option may disappear in a future version of 'gawk'.

-File: gawk.info, Node: Array Sorting, Next: Two-way I/O, Prev: Nondecimal Data, Up: Advanced Features
+File: gawk.info, Node: Boolean Typed Values, Next: Array Sorting, Prev: Nondecimal Data, Up: Advanced Features
+
+12.2 Boolean Typed Values
+=========================
+
+Scalar values in 'awk' are either numbers or strings. 'gawk' also
+supports values of type 'regexp' (*note Strong Regexp Constants::).
+
+ As described in *note Truth Values::, Boolean values in 'awk' don't
+have a separate type: a value counts as "true" if it is nonzero or
+non-null, and as "false" otherwise.
+
+ When interchanging data with languages that do have a real Boolean
+type, using a standard format such as JSON or XML, the lack of a true
+Boolean type in 'awk' is problematic. (See, for example, the 'json'
+extension provided by the 'gawkextlib' project
+(https://sourceforge.net/projects/gawkextlib).)
-12.2 Controlling Array Traversal and Array Sorting
+ It's easy to import Boolean data into 'awk', but then the fact that
+it was originally Boolean is lost. Exporting data is even harder;
+there's no way to indicate that a value is really Boolean.
+
+ To solve this problem, 'gawk' provides a function named 'mkbool()'.
+It takes one argument, which is any 'awk' expression, and it returns a
+value of Boolean type.
+
+ The returned values are normal 'awk' numeric values, with values of
+either one or zero, depending upon the truth value of the original
+expression passed in the call to 'mkbool()'.
+
+ The 'typeof()' function (*note Type Functions::) returns
+'"number|bool"' for these values.
+
+ Thus Boolean-typed values _are_ numbers as far as 'gawk' is
+concerned, except that extension code can treat them as Booleans if
+desired.
+
+ While it would have been possible to add two new built-in variables
+of Boolean type named 'TRUE' and 'FALSE', doing so would undoubtedly
+have broken many existing 'awk' programs. Instead, having a "generator"
+function that creates Boolean values gives flexibility, without breaking
+as much existing code.
+
+
+File: gawk.info, Node: Array Sorting, Next: Two-way I/O, Prev: Boolean Typed Values, Up: Advanced Features
+
+12.3 Controlling Array Traversal and Array Sorting
==================================================
'gawk' lets you control the order in which a 'for (INDX in ARRAY)' loop
@@ -20945,7 +21015,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
@@ -21184,7 +21254,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
@@ -21324,7 +21394,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
@@ -21519,7 +21589,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':
@@ -21599,7 +21669,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
@@ -21861,7 +21931,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
@@ -21897,7 +21967,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
@@ -24254,18 +24324,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.
@@ -24324,11 +24386,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
@@ -24421,6 +24478,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
@@ -24485,7 +24543,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
..........................
@@ -24533,6 +24591,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
@@ -25479,7 +25595,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'.
@@ -25492,6 +25609,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
@@ -25507,6 +25625,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.
@@ -25817,6 +25936,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
@@ -26542,16 +26666,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
@@ -33221,8 +33346,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
@@ -35379,6 +35504,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)
@@ -36967,6 +37093,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)
@@ -38192,605 +38319,608 @@ Index

Tag Table:
Node: Top1200
-Node: Foreword344934
-Node: Foreword449376
-Node: Preface50908
-Ref: Preface-Footnote-153767
-Ref: Preface-Footnote-253876
-Ref: Preface-Footnote-354110
-Node: History54252
-Node: Names56604
-Ref: Names-Footnote-157708
-Node: This Manual57855
-Ref: This Manual-Footnote-164494
-Node: Conventions64594
-Node: Manual History66963
-Ref: Manual History-Footnote-169960
-Ref: Manual History-Footnote-270001
-Node: How To Contribute70075
-Node: Acknowledgments71001
-Node: Getting Started75938
-Node: Running gawk78377
-Node: One-shot79567
-Node: Read Terminal80830
-Node: Long82823
-Node: Executable Scripts84336
-Ref: Executable Scripts-Footnote-186969
-Node: Comments87072
-Node: Quoting89556
-Node: DOS Quoting95082
-Node: Sample Data Files97138
-Node: Very Simple99733
-Node: Two Rules105835
-Node: More Complex107720
-Node: Statements/Lines110052
-Ref: Statements/Lines-Footnote-1114536
-Node: Other Features114801
-Node: When115737
-Ref: When-Footnote-1117491
-Node: Intro Summary117556
-Node: Invoking Gawk118440
-Node: Command Line119954
-Node: Options120752
-Ref: Options-Footnote-1138666
-Ref: Options-Footnote-2138897
-Node: Other Arguments138922
-Node: Naming Standard Input142933
-Node: Environment Variables144143
-Node: AWKPATH Variable144701
-Ref: AWKPATH Variable-Footnote-1148113
-Ref: AWKPATH Variable-Footnote-2148147
-Node: AWKLIBPATH Variable148518
-Ref: AWKLIBPATH Variable-Footnote-1150215
-Node: Other Environment Variables150590
-Node: Exit Status154411
-Node: Include Files155088
-Node: Loading Shared Libraries158778
-Node: Obsolete160206
-Node: Undocumented160898
-Node: Invoking Summary161195
-Node: Regexp164036
-Node: Regexp Usage165490
-Node: Escape Sequences167527
-Node: Regexp Operators173768
-Node: Regexp Operator Details174253
-Ref: Regexp Operator Details-Footnote-1181617
-Node: Interval Expressions181764
-Ref: Interval Expressions-Footnote-1183185
-Node: Bracket Expressions183283
-Ref: table-char-classes185759
-Node: Leftmost Longest189085
-Node: Computed Regexps190388
-Node: GNU Regexp Operators193815
-Node: Case-sensitivity197552
-Ref: Case-sensitivity-Footnote-1200418
-Ref: Case-sensitivity-Footnote-2200653
-Node: Regexp Summary200761
-Node: Reading Files202227
-Node: Records204496
-Node: awk split records205571
-Node: gawk split records210271
-Ref: gawk split records-Footnote-1215345
-Node: Fields215382
-Node: Nonconstant Fields218123
-Ref: Nonconstant Fields-Footnote-1220359
-Node: Changing Fields220563
-Node: Field Separators226594
-Node: Default Field Splitting229292
-Node: Regexp Field Splitting230410
-Node: Single Character Fields234087
-Node: Command Line Field Separator235147
-Node: Full Line Fields238365
-Ref: Full Line Fields-Footnote-1239887
-Ref: Full Line Fields-Footnote-2239933
-Node: Field Splitting Summary240034
-Node: Constant Size242108
-Node: Fixed width data242840
-Node: Skipping intervening246307
-Node: Allowing trailing data247105
-Node: Fields with fixed data248142
-Node: Splitting By Content249660
-Ref: Splitting By Content-Footnote-1253443
-Node: More CSV253606
-Node: Testing field creation255198
-Node: Multiple Line256823
-Node: Getline263100
-Node: Plain Getline265569
-Node: Getline/Variable268142
-Node: Getline/File269293
-Node: Getline/Variable/File270681
-Ref: Getline/Variable/File-Footnote-1272286
-Node: Getline/Pipe272374
-Node: Getline/Variable/Pipe275078
-Node: Getline/Coprocess276213
-Node: Getline/Variable/Coprocess277480
-Node: Getline Notes278222
-Node: Getline Summary281019
-Ref: table-getline-variants281443
-Node: Read Timeout282191
-Ref: Read Timeout-Footnote-1286097
-Node: Retrying Input286155
-Node: Command-line directories287354
-Node: Input Summary288260
-Node: Input Exercises291432
-Node: Printing291866
-Node: Print293700
-Node: Print Examples295157
-Node: Output Separators297937
-Node: OFMT299954
-Node: Printf301310
-Node: Basic Printf302095
-Node: Control Letters303669
-Node: Format Modifiers308833
-Node: Printf Examples314848
-Node: Redirection317334
-Node: Special FD324175
-Ref: Special FD-Footnote-1327343
-Node: Special Files327417
-Node: Other Inherited Files328034
-Node: Special Network329035
-Node: Special Caveats329895
-Node: Close Files And Pipes330844
-Ref: table-close-pipe-return-values337751
-Ref: Close Files And Pipes-Footnote-1338564
-Ref: Close Files And Pipes-Footnote-2338712
-Node: Nonfatal338864
-Node: Output Summary341202
-Node: Output Exercises342424
-Node: Expressions343103
-Node: Values344291
-Node: Constants344969
-Node: Scalar Constants345660
-Ref: Scalar Constants-Footnote-1348170
-Node: Nondecimal-numbers348420
-Node: Regexp Constants351421
-Node: Using Constant Regexps351947
-Node: Standard Regexp Constants352569
-Node: Strong Regexp Constants355757
-Node: Variables358769
-Node: Using Variables359426
-Node: Assignment Options361336
-Node: Conversion363807
-Node: Strings And Numbers364331
-Ref: Strings And Numbers-Footnote-1367394
-Node: Locale influences conversions367503
-Ref: table-locale-affects370261
-Node: All Operators370879
-Node: Arithmetic Ops371508
-Node: Concatenation374224
-Ref: Concatenation-Footnote-1377071
-Node: Assignment Ops377178
-Ref: table-assign-ops382169
-Node: Increment Ops383482
-Node: Truth Values and Conditions386942
-Node: Truth Values388016
-Node: Typing and Comparison389064
-Node: Variable Typing389884
-Ref: Variable Typing-Footnote-1396347
-Ref: Variable Typing-Footnote-2396419
-Node: Comparison Operators396496
-Ref: table-relational-ops396915
-Node: POSIX String Comparison400410
-Ref: POSIX String Comparison-Footnote-1402105
-Ref: POSIX String Comparison-Footnote-2402244
-Node: Boolean Ops402328
-Ref: Boolean Ops-Footnote-1406810
-Node: Conditional Exp406902
-Node: Function Calls408638
-Node: Precedence412515
-Node: Locales416174
-Node: Expressions Summary417806
-Node: Patterns and Actions420379
-Node: Pattern Overview421499
-Node: Regexp Patterns423176
-Node: Expression Patterns423718
-Node: Ranges427499
-Node: BEGIN/END430607
-Node: Using BEGIN/END431368
-Ref: Using BEGIN/END-Footnote-1434122
-Node: I/O And BEGIN/END434228
-Node: BEGINFILE/ENDFILE436541
-Node: Empty439772
-Node: Using Shell Variables440089
-Node: Action Overview442363
-Node: Statements444688
-Node: If Statement446536
-Node: While Statement448031
-Node: Do Statement450059
-Node: For Statement451207
-Node: Switch Statement454378
-Node: Break Statement456819
-Node: Continue Statement458911
-Node: Next Statement460738
-Node: Nextfile Statement463121
-Node: Exit Statement465810
-Node: Built-in Variables468213
-Node: User-modified469346
-Node: Auto-set477113
-Ref: Auto-set-Footnote-1493920
-Ref: Auto-set-Footnote-2494126
-Node: ARGC and ARGV494182
-Node: Pattern Action Summary498395
-Node: Arrays500825
-Node: Array Basics502154
-Node: Array Intro502998
-Ref: figure-array-elements504973
-Ref: Array Intro-Footnote-1507677
-Node: Reference to Elements507805
-Node: Assigning Elements510269
-Node: Array Example510760
-Node: Scanning an Array512519
-Node: Controlling Scanning515541
-Ref: Controlling Scanning-Footnote-1521997
-Node: Numeric Array Subscripts522313
-Node: Uninitialized Subscripts524497
-Node: Delete526116
-Ref: Delete-Footnote-1528868
-Node: Multidimensional528925
-Node: Multiscanning532020
-Node: Arrays of Arrays533611
-Node: Arrays Summary538379
-Node: Functions540472
-Node: Built-in541510
-Node: Calling Built-in542591
-Node: Numeric Functions544587
-Ref: Numeric Functions-Footnote-1548615
-Ref: Numeric Functions-Footnote-2549263
-Ref: Numeric Functions-Footnote-3549311
-Node: String Functions549583
-Ref: String Functions-Footnote-1573724
-Ref: String Functions-Footnote-2573852
-Ref: String Functions-Footnote-3574100
-Node: Gory Details574187
-Ref: table-sub-escapes575978
-Ref: table-sub-proposed577497
-Ref: table-posix-sub578860
-Ref: table-gensub-escapes580401
-Ref: Gory Details-Footnote-1581224
-Node: I/O Functions581378
-Ref: table-system-return-values587832
-Ref: I/O Functions-Footnote-1589912
-Ref: I/O Functions-Footnote-2590060
-Node: Time Functions590180
-Ref: Time Functions-Footnote-1600851
-Ref: Time Functions-Footnote-2600919
-Ref: Time Functions-Footnote-3601077
-Ref: Time Functions-Footnote-4601188
-Ref: Time Functions-Footnote-5601300
-Ref: Time Functions-Footnote-6601527
-Node: Bitwise Functions601793
-Ref: table-bitwise-ops602387
-Ref: Bitwise Functions-Footnote-1608450
-Ref: Bitwise Functions-Footnote-2608623
-Node: Type Functions608814
-Node: I18N Functions611677
-Node: User-defined613328
-Node: Definition Syntax614140
-Ref: Definition Syntax-Footnote-1619834
-Node: Function Example619905
-Ref: Function Example-Footnote-1622827
-Node: Function Calling622849
-Node: Calling A Function623437
-Node: Variable Scope624395
-Node: Pass By Value/Reference627389
-Node: Function Caveats630033
-Ref: Function Caveats-Footnote-1632080
-Node: Return Statement632200
-Node: Dynamic Typing635179
-Node: Indirect Calls636109
-Ref: Indirect Calls-Footnote-1646361
-Node: Functions Summary646489
-Node: Library Functions649194
-Ref: Library Functions-Footnote-1652801
-Ref: Library Functions-Footnote-2652944
-Node: Library Names653115
-Ref: Library Names-Footnote-1656782
-Ref: Library Names-Footnote-2657005
-Node: General Functions657091
-Node: Strtonum Function658194
-Node: Assert Function661216
-Node: Round Function664542
-Node: Cliff Random Function666082
-Node: Ordinal Functions667098
-Ref: Ordinal Functions-Footnote-1670161
-Ref: Ordinal Functions-Footnote-2670413
-Node: Join Function670623
-Ref: Join Function-Footnote-1672393
-Node: Getlocaltime Function672593
-Node: Readfile Function676335
-Node: Shell Quoting678312
-Node: Data File Management679713
-Node: Filetrans Function680345
-Node: Rewind Function684441
-Node: File Checking686350
-Ref: File Checking-Footnote-1687684
-Node: Empty Files687885
-Node: Ignoring Assigns689864
-Node: Getopt Function691414
-Ref: Getopt Function-Footnote-1706625
-Node: Passwd Functions706825
-Ref: Passwd Functions-Footnote-1715664
-Node: Group Functions715752
-Ref: Group Functions-Footnote-1723650
-Node: Walking Arrays723857
-Node: Library Functions Summary726865
-Node: Library Exercises728271
-Node: Sample Programs728736
-Node: Running Examples729506
-Node: Clones730234
-Node: Cut Program731458
-Node: Egrep Program741598
-Node: Id Program750599
-Node: Split Program760546
-Ref: Split Program-Footnote-1770436
-Node: Tee Program770609
-Node: Uniq Program773399
-Node: Wc Program780987
-Node: Bytes vs. Characters781374
-Node: Using extensions782922
-Node: wc program783676
-Node: Miscellaneous Programs788541
-Node: Dupword Program789754
-Node: Alarm Program791784
-Node: Translate Program796639
-Ref: Translate Program-Footnote-1801204
-Node: Labels Program801474
-Ref: Labels Program-Footnote-1804825
-Node: Word Sorting804909
-Node: History Sorting808981
-Node: Extract Program811206
-Node: Simple Sed819260
-Node: Igawk Program822334
-Ref: Igawk Program-Footnote-1836665
-Ref: Igawk Program-Footnote-2836867
-Ref: Igawk Program-Footnote-3836989
-Node: Anagram Program837104
-Node: Signature Program840166
-Node: Programs Summary841413
-Node: Programs Exercises842627
-Ref: Programs Exercises-Footnote-1846757
-Node: Advanced Features846843
-Node: Nondecimal Data848910
-Node: Array Sorting850501
-Node: Controlling Array Traversal851201
-Ref: Controlling Array Traversal-Footnote-1859569
-Node: Array Sorting Functions859687
-Ref: Array Sorting Functions-Footnote-1864778
-Node: Two-way I/O864974
-Ref: Two-way I/O-Footnote-1872695
-Ref: Two-way I/O-Footnote-2872882
-Node: TCP/IP Networking872964
-Node: Profiling876082
-Node: Extension Philosophy885391
-Node: Advanced Features Summary886870
-Node: Internationalization888885
-Node: I18N and L10N890559
-Node: Explaining gettext891246
-Ref: Explaining gettext-Footnote-1897138
-Ref: Explaining gettext-Footnote-2897323
-Node: Programmer i18n897488
-Ref: Programmer i18n-Footnote-1902437
-Node: Translator i18n902486
-Node: String Extraction903280
-Ref: String Extraction-Footnote-1904412
-Node: Printf Ordering904498
-Ref: Printf Ordering-Footnote-1907284
-Node: I18N Portability907348
-Ref: I18N Portability-Footnote-1909804
-Node: I18N Example909867
-Ref: I18N Example-Footnote-1913142
-Ref: I18N Example-Footnote-2913215
-Node: Gawk I18N913324
-Node: I18N Summary913973
-Node: Debugger915314
-Node: Debugging916314
-Node: Debugging Concepts916755
-Node: Debugging Terms918564
-Node: Awk Debugging921139
-Ref: Awk Debugging-Footnote-1922084
-Node: Sample Debugging Session922216
-Node: Debugger Invocation922750
-Node: Finding The Bug924136
-Node: List of Debugger Commands930610
-Node: Breakpoint Control931943
-Node: Debugger Execution Control935637
-Node: Viewing And Changing Data938999
-Node: Execution Stack942540
-Node: Debugger Info944177
-Node: Miscellaneous Debugger Commands948248
-Node: Readline Support953310
-Node: Limitations954206
-Node: Debugging Summary956760
-Node: Namespaces958039
-Node: Global Namespace959150
-Node: Qualified Names960548
-Node: Default Namespace961547
-Node: Changing The Namespace962288
-Node: Naming Rules963902
-Node: Internal Name Management965750
-Node: Namespace Example966792
-Node: Namespace And Features969354
-Node: Namespace Summary970789
-Node: Arbitrary Precision Arithmetic972266
-Node: Computer Arithmetic973753
-Ref: table-numeric-ranges977519
-Ref: table-floating-point-ranges978012
-Ref: Computer Arithmetic-Footnote-1978670
-Node: Math Definitions978727
-Ref: table-ieee-formats982043
-Ref: Math Definitions-Footnote-1982646
-Node: MPFR features982751
-Node: FP Math Caution984469
-Ref: FP Math Caution-Footnote-1985541
-Node: Inexactness of computations985910
-Node: Inexact representation986870
-Node: Comparing FP Values988230
-Node: Errors accumulate989471
-Node: Getting Accuracy990904
-Node: Try To Round993614
-Node: Setting precision994513
-Ref: table-predefined-precision-strings995210
-Node: Setting the rounding mode997040
-Ref: table-gawk-rounding-modes997414
-Ref: Setting the rounding mode-Footnote-11001345
-Node: Arbitrary Precision Integers1001524
-Ref: Arbitrary Precision Integers-Footnote-11004699
-Node: Checking for MPFR1004848
-Node: POSIX Floating Point Problems1006322
-Ref: POSIX Floating Point Problems-Footnote-11010607
-Node: Floating point summary1010645
-Node: Dynamic Extensions1012835
-Node: Extension Intro1014388
-Node: Plugin License1015654
-Node: Extension Mechanism Outline1016451
-Ref: figure-load-extension1016890
-Ref: figure-register-new-function1018455
-Ref: figure-call-new-function1019547
-Node: Extension API Description1021609
-Node: Extension API Functions Introduction1023322
-Ref: table-api-std-headers1025158
-Node: General Data Types1029407
-Ref: General Data Types-Footnote-11038037
-Node: Memory Allocation Functions1038336
-Ref: Memory Allocation Functions-Footnote-11042837
-Node: Constructor Functions1042936
-Node: API Ownership of MPFR and GMP Values1046402
-Node: Registration Functions1047715
-Node: Extension Functions1048415
-Node: Exit Callback Functions1053737
-Node: Extension Version String1054987
-Node: Input Parsers1055650
-Node: Output Wrappers1068371
-Node: Two-way processors1072883
-Node: Printing Messages1075148
-Ref: Printing Messages-Footnote-11076319
-Node: Updating ERRNO1076472
-Node: Requesting Values1077211
-Ref: table-value-types-returned1077948
-Node: Accessing Parameters1078884
-Node: Symbol Table Access1080121
-Node: Symbol table by name1080633
-Ref: Symbol table by name-Footnote-11083657
-Node: Symbol table by cookie1083785
-Ref: Symbol table by cookie-Footnote-11087970
-Node: Cached values1088034
-Ref: Cached values-Footnote-11091570
-Node: Array Manipulation1091723
-Ref: Array Manipulation-Footnote-11092814
-Node: Array Data Types1092851
-Ref: Array Data Types-Footnote-11095509
-Node: Array Functions1095601
-Node: Flattening Arrays1100099
-Node: Creating Arrays1107075
-Node: Redirection API1111842
-Node: Extension API Variables1114675
-Node: Extension Versioning1115386
-Ref: gawk-api-version1115815
-Node: Extension GMP/MPFR Versioning1117546
-Node: Extension API Informational Variables1119174
-Node: Extension API Boilerplate1120247
-Node: Changes from API V11124221
-Node: Finding Extensions1125793
-Node: Extension Example1126352
-Node: Internal File Description1127150
-Node: Internal File Ops1131230
-Ref: Internal File Ops-Footnote-11142580
-Node: Using Internal File Ops1142720
-Ref: Using Internal File Ops-Footnote-11145103
-Node: Extension Samples1145377
-Node: Extension Sample File Functions1146906
-Node: Extension Sample Fnmatch1154555
-Node: Extension Sample Fork1156042
-Node: Extension Sample Inplace1157260
-Node: Extension Sample Ord1160886
-Node: Extension Sample Readdir1161722
-Ref: table-readdir-file-types1162611
-Node: Extension Sample Revout1163678
-Node: Extension Sample Rev2way1164267
-Node: Extension Sample Read write array1165007
-Node: Extension Sample Readfile1166949
-Node: Extension Sample Time1168044
-Node: Extension Sample API Tests1169796
-Node: gawkextlib1170288
-Node: Extension summary1173206
-Node: Extension Exercises1176908
-Node: Language History1178150
-Node: V7/SVR3.11179806
-Node: SVR41181958
-Node: POSIX1183392
-Node: BTL1184773
-Node: POSIX/GNU1185502
-Node: Feature History1191280
-Node: Common Extensions1208455
-Node: Ranges and Locales1209738
-Ref: Ranges and Locales-Footnote-11214354
-Ref: Ranges and Locales-Footnote-21214381
-Ref: Ranges and Locales-Footnote-31214616
-Node: Contributors1214839
-Node: History summary1220836
-Node: Installation1222216
-Node: Gawk Distribution1223160
-Node: Getting1223644
-Node: Extracting1224607
-Node: Distribution contents1226245
-Node: Unix Installation1232725
-Node: Quick Installation1233407
-Node: Compiling with MPFR1235888
-Node: Shell Startup Files1236580
-Node: Additional Configuration Options1237669
-Node: Configuration Philosophy1239984
-Node: Non-Unix Installation1242353
-Node: PC Installation1242813
-Node: PC Binary Installation1243651
-Node: PC Compiling1244086
-Node: PC Using1245203
-Node: Cygwin1248756
-Node: MSYS1249980
-Node: VMS Installation1250582
-Node: VMS Compilation1251373
-Ref: VMS Compilation-Footnote-11252602
-Node: VMS Dynamic Extensions1252660
-Node: VMS Installation Details1254345
-Node: VMS Running1256598
-Node: VMS GNV1260877
-Node: VMS Old Gawk1261612
-Node: Bugs1262083
-Node: Bug address1262832
-Node: Usenet1265814
-Node: Performance bugs1266823
-Node: Maintainers1269680
-Node: Other Versions1270875
-Node: Installation summary1278740
-Node: Notes1279949
-Node: Compatibility Mode1280743
-Node: Additions1281525
-Node: Accessing The Source1282450
-Node: Adding Code1283887
-Node: New Ports1290106
-Node: Derived Files1294481
-Ref: Derived Files-Footnote-11300141
-Ref: Derived Files-Footnote-21300176
-Ref: Derived Files-Footnote-31300774
-Node: Future Extensions1300888
-Node: Implementation Limitations1301546
-Node: Extension Design1302756
-Node: Old Extension Problems1303900
-Ref: Old Extension Problems-Footnote-11305418
-Node: Extension New Mechanism Goals1305475
-Ref: Extension New Mechanism Goals-Footnote-11308839
-Node: Extension Other Design Decisions1309028
-Node: Extension Future Growth1311141
-Node: Notes summary1311747
-Node: Basic Concepts1312905
-Node: Basic High Level1313586
-Ref: figure-general-flow1313868
-Ref: figure-process-flow1314553
-Ref: Basic High Level-Footnote-11317854
-Node: Basic Data Typing1318039
-Node: Glossary1321367
-Node: Copying1353252
-Node: GNU Free Documentation License1390795
-Node: Index1415915
+Node: Foreword345205
+Node: Foreword449647
+Node: Preface51179
+Ref: Preface-Footnote-154038
+Ref: Preface-Footnote-254147
+Ref: Preface-Footnote-354381
+Node: History54523
+Node: Names56875
+Ref: Names-Footnote-157979
+Node: This Manual58126
+Ref: This Manual-Footnote-164765
+Node: Conventions64865
+Node: Manual History67234
+Ref: Manual History-Footnote-170231
+Ref: Manual History-Footnote-270272
+Node: How To Contribute70346
+Node: Acknowledgments71272
+Node: Getting Started76209
+Node: Running gawk78648
+Node: One-shot79838
+Node: Read Terminal81101
+Node: Long83094
+Node: Executable Scripts84607
+Ref: Executable Scripts-Footnote-187240
+Node: Comments87343
+Node: Quoting89827
+Node: DOS Quoting95353
+Node: Sample Data Files97409
+Node: Very Simple100004
+Node: Two Rules106106
+Node: More Complex107991
+Node: Statements/Lines110323
+Ref: Statements/Lines-Footnote-1114807
+Node: Other Features115072
+Node: When116008
+Ref: When-Footnote-1117762
+Node: Intro Summary117827
+Node: Invoking Gawk118711
+Node: Command Line120225
+Node: Options121023
+Ref: Options-Footnote-1138937
+Ref: Options-Footnote-2139168
+Node: Other Arguments139193
+Node: Naming Standard Input143204
+Node: Environment Variables144414
+Node: AWKPATH Variable144972
+Ref: AWKPATH Variable-Footnote-1148384
+Ref: AWKPATH Variable-Footnote-2148418
+Node: AWKLIBPATH Variable148789
+Ref: AWKLIBPATH Variable-Footnote-1150486
+Node: Other Environment Variables150861
+Node: Exit Status154813
+Node: Include Files155490
+Node: Loading Shared Libraries159180
+Node: Obsolete160608
+Node: Undocumented161300
+Node: Invoking Summary161597
+Node: Regexp164438
+Node: Regexp Usage165892
+Node: Escape Sequences167929
+Node: Regexp Operators174170
+Node: Regexp Operator Details174655
+Ref: Regexp Operator Details-Footnote-1182019
+Node: Interval Expressions182166
+Ref: Interval Expressions-Footnote-1183587
+Node: Bracket Expressions183685
+Ref: table-char-classes186161
+Node: Leftmost Longest189487
+Node: Computed Regexps190790
+Node: GNU Regexp Operators194217
+Node: Case-sensitivity197954
+Ref: Case-sensitivity-Footnote-1200820
+Ref: Case-sensitivity-Footnote-2201055
+Node: Regexp Summary201163
+Node: Reading Files202629
+Node: Records204898
+Node: awk split records205973
+Node: gawk split records210673
+Ref: gawk split records-Footnote-1215747
+Node: Fields215784
+Node: Nonconstant Fields218525
+Ref: Nonconstant Fields-Footnote-1220761
+Node: Changing Fields220965
+Node: Field Separators226996
+Node: Default Field Splitting229694
+Node: Regexp Field Splitting230812
+Node: Single Character Fields234489
+Node: Command Line Field Separator235549
+Node: Full Line Fields238767
+Ref: Full Line Fields-Footnote-1240289
+Ref: Full Line Fields-Footnote-2240335
+Node: Field Splitting Summary240436
+Node: Constant Size242510
+Node: Fixed width data243242
+Node: Skipping intervening246709
+Node: Allowing trailing data247507
+Node: Fields with fixed data248544
+Node: Splitting By Content250062
+Ref: Splitting By Content-Footnote-1253845
+Node: More CSV254008
+Node: Testing field creation255600
+Node: Multiple Line257225
+Node: Getline263502
+Node: Plain Getline265971
+Node: Getline/Variable268544
+Node: Getline/File269695
+Node: Getline/Variable/File271083
+Ref: Getline/Variable/File-Footnote-1272688
+Node: Getline/Pipe272776
+Node: Getline/Variable/Pipe275480
+Node: Getline/Coprocess276615
+Node: Getline/Variable/Coprocess277882
+Node: Getline Notes278624
+Node: Getline Summary281421
+Ref: table-getline-variants281845
+Node: Read Timeout282593
+Ref: Read Timeout-Footnote-1286499
+Node: Retrying Input286557
+Node: Command-line directories287756
+Node: Input Summary288662
+Node: Input Exercises291834
+Node: Printing292268
+Node: Print294102
+Node: Print Examples295559
+Node: Output Separators298339
+Node: OFMT300356
+Node: Printf301712
+Node: Basic Printf302497
+Node: Control Letters304071
+Node: Format Modifiers309233
+Node: Printf Examples315248
+Node: Redirection317734
+Node: Special FD324575
+Ref: Special FD-Footnote-1327743
+Node: Special Files327817
+Node: Other Inherited Files328434
+Node: Special Network329435
+Node: Special Caveats330295
+Node: Close Files And Pipes331244
+Ref: table-close-pipe-return-values338151
+Ref: Close Files And Pipes-Footnote-1338964
+Ref: Close Files And Pipes-Footnote-2339112
+Node: Nonfatal339264
+Node: Output Summary341602
+Node: Output Exercises342824
+Node: Expressions343503
+Node: Values344691
+Node: Constants345369
+Node: Scalar Constants346060
+Ref: Scalar Constants-Footnote-1348570
+Node: Nondecimal-numbers348820
+Node: Regexp Constants351821
+Node: Using Constant Regexps352347
+Node: Standard Regexp Constants352969
+Node: Strong Regexp Constants356157
+Node: Variables359169
+Node: Using Variables359826
+Node: Assignment Options361736
+Node: Conversion364207
+Node: Strings And Numbers364731
+Ref: Strings And Numbers-Footnote-1367794
+Node: Locale influences conversions367903
+Ref: table-locale-affects370661
+Node: All Operators371279
+Node: Arithmetic Ops371908
+Node: Concatenation374624
+Ref: Concatenation-Footnote-1377471
+Node: Assignment Ops377578
+Ref: table-assign-ops382569
+Node: Increment Ops383882
+Node: Truth Values and Conditions387342
+Node: Truth Values388416
+Node: Typing and Comparison389464
+Node: Variable Typing390284
+Ref: Variable Typing-Footnote-1396747
+Ref: Variable Typing-Footnote-2396819
+Node: Comparison Operators396896
+Ref: table-relational-ops397315
+Node: POSIX String Comparison400810
+Ref: POSIX String Comparison-Footnote-1402505
+Ref: POSIX String Comparison-Footnote-2402644
+Node: Boolean Ops402728
+Ref: Boolean Ops-Footnote-1407210
+Node: Conditional Exp407302
+Node: Function Calls409038
+Node: Precedence412915
+Node: Locales416574
+Node: Expressions Summary418206
+Node: Patterns and Actions420779
+Node: Pattern Overview421899
+Node: Regexp Patterns423576
+Node: Expression Patterns424118
+Node: Ranges427899
+Node: BEGIN/END431007
+Node: Using BEGIN/END431768
+Ref: Using BEGIN/END-Footnote-1434522
+Node: I/O And BEGIN/END434628
+Node: BEGINFILE/ENDFILE436941
+Node: Empty440172
+Node: Using Shell Variables440489
+Node: Action Overview442763
+Node: Statements445088
+Node: If Statement446936
+Node: While Statement448431
+Node: Do Statement450459
+Node: For Statement451607
+Node: Switch Statement454778
+Node: Break Statement457219
+Node: Continue Statement459311
+Node: Next Statement461138
+Node: Nextfile Statement463521
+Node: Exit Statement466210
+Node: Built-in Variables468613
+Node: User-modified469746
+Node: Auto-set477513
+Ref: Auto-set-Footnote-1494320
+Ref: Auto-set-Footnote-2494526
+Node: ARGC and ARGV494582
+Node: Pattern Action Summary498795
+Node: Arrays501225
+Node: Array Basics502554
+Node: Array Intro503398
+Ref: figure-array-elements505373
+Ref: Array Intro-Footnote-1508077
+Node: Reference to Elements508205
+Node: Assigning Elements510669
+Node: Array Example511160
+Node: Scanning an Array512919
+Node: Controlling Scanning515941
+Ref: Controlling Scanning-Footnote-1522397
+Node: Numeric Array Subscripts522713
+Node: Uninitialized Subscripts524897
+Node: Delete526516
+Ref: Delete-Footnote-1529268
+Node: Multidimensional529325
+Node: Multiscanning532420
+Node: Arrays of Arrays534011
+Node: Arrays Summary538779
+Node: Functions540872
+Node: Built-in541910
+Node: Calling Built-in543063
+Node: Boolean Functions545059
+Node: Numeric Functions545613
+Ref: Numeric Functions-Footnote-1549640
+Ref: Numeric Functions-Footnote-2550288
+Ref: Numeric Functions-Footnote-3550336
+Node: String Functions550608
+Ref: String Functions-Footnote-1574749
+Ref: String Functions-Footnote-2574877
+Ref: String Functions-Footnote-3575125
+Node: Gory Details575212
+Ref: table-sub-escapes577003
+Ref: table-sub-proposed578522
+Ref: table-posix-sub579885
+Ref: table-gensub-escapes581426
+Ref: Gory Details-Footnote-1582249
+Node: I/O Functions582403
+Ref: table-system-return-values588857
+Ref: I/O Functions-Footnote-1590937
+Ref: I/O Functions-Footnote-2591085
+Node: Time Functions591205
+Ref: Time Functions-Footnote-1601876
+Ref: Time Functions-Footnote-2601944
+Ref: Time Functions-Footnote-3602102
+Ref: Time Functions-Footnote-4602213
+Ref: Time Functions-Footnote-5602325
+Ref: Time Functions-Footnote-6602552
+Node: Bitwise Functions602818
+Ref: table-bitwise-ops603412
+Ref: Bitwise Functions-Footnote-1609475
+Ref: Bitwise Functions-Footnote-2609648
+Node: Type Functions609839
+Node: I18N Functions612793
+Node: User-defined614444
+Node: Definition Syntax615256
+Ref: Definition Syntax-Footnote-1620950
+Node: Function Example621021
+Ref: Function Example-Footnote-1623943
+Node: Function Calling623965
+Node: Calling A Function624553
+Node: Variable Scope625511
+Node: Pass By Value/Reference628505
+Node: Function Caveats631149
+Ref: Function Caveats-Footnote-1633196
+Node: Return Statement633316
+Node: Dynamic Typing636295
+Node: Indirect Calls637225
+Ref: Indirect Calls-Footnote-1647480
+Node: Functions Summary647608
+Node: Library Functions650313
+Ref: Library Functions-Footnote-1653920
+Ref: Library Functions-Footnote-2654063
+Node: Library Names654234
+Ref: Library Names-Footnote-1657901
+Ref: Library Names-Footnote-2658124
+Node: General Functions658210
+Node: Strtonum Function659313
+Node: Assert Function662335
+Node: Round Function665661
+Node: Cliff Random Function667201
+Node: Ordinal Functions668217
+Ref: Ordinal Functions-Footnote-1671280
+Ref: Ordinal Functions-Footnote-2671532
+Node: Join Function671742
+Ref: Join Function-Footnote-1673512
+Node: Getlocaltime Function673712
+Node: Readfile Function677454
+Node: Shell Quoting679431
+Node: Data File Management680832
+Node: Filetrans Function681464
+Node: Rewind Function685560
+Node: File Checking687469
+Ref: File Checking-Footnote-1688803
+Node: Empty Files689004
+Node: Ignoring Assigns690983
+Node: Getopt Function692533
+Ref: Getopt Function-Footnote-1707744
+Node: Passwd Functions707944
+Ref: Passwd Functions-Footnote-1716783
+Node: Group Functions716871
+Ref: Group Functions-Footnote-1724769
+Node: Walking Arrays724976
+Node: Library Functions Summary727984
+Node: Library Exercises729390
+Node: Sample Programs729855
+Node: Running Examples730625
+Node: Clones731353
+Node: Cut Program732577
+Node: Egrep Program742717
+Node: Id Program751718
+Node: Split Program761665
+Ref: Split Program-Footnote-1771555
+Node: Tee Program771728
+Node: Uniq Program774518
+Node: Wc Program782106
+Node: Bytes vs. Characters782493
+Node: Using extensions784041
+Node: wc program784795
+Node: Miscellaneous Programs789660
+Node: Dupword Program790873
+Node: Alarm Program792903
+Node: Translate Program797758
+Ref: Translate Program-Footnote-1802323
+Node: Labels Program802593
+Ref: Labels Program-Footnote-1805944
+Node: Word Sorting806028
+Node: History Sorting810100
+Node: Extract Program812325
+Node: Simple Sed820379
+Node: Igawk Program823453
+Ref: Igawk Program-Footnote-1837784
+Ref: Igawk Program-Footnote-2837986
+Ref: Igawk Program-Footnote-3838108
+Node: Anagram Program838223
+Node: Signature Program841285
+Node: Programs Summary842532
+Node: Programs Exercises843746
+Ref: Programs Exercises-Footnote-1847876
+Node: Advanced Features847962
+Node: Nondecimal Data850093
+Node: Boolean Typed Values851691
+Node: Array Sorting853572
+Node: Controlling Array Traversal854277
+Ref: Controlling Array Traversal-Footnote-1862645
+Node: Array Sorting Functions862763
+Ref: Array Sorting Functions-Footnote-1867854
+Node: Two-way I/O868050
+Ref: Two-way I/O-Footnote-1875771
+Ref: Two-way I/O-Footnote-2875958
+Node: TCP/IP Networking876040
+Node: Profiling879158
+Node: Extension Philosophy888467
+Node: Advanced Features Summary889946
+Node: Internationalization891961
+Node: I18N and L10N893635
+Node: Explaining gettext894322
+Ref: Explaining gettext-Footnote-1900214
+Ref: Explaining gettext-Footnote-2900399
+Node: Programmer i18n900564
+Ref: Programmer i18n-Footnote-1905513
+Node: Translator i18n905562
+Node: String Extraction906356
+Ref: String Extraction-Footnote-1907488
+Node: Printf Ordering907574
+Ref: Printf Ordering-Footnote-1910360
+Node: I18N Portability910424
+Ref: I18N Portability-Footnote-1912880
+Node: I18N Example912943
+Ref: I18N Example-Footnote-1916218
+Ref: I18N Example-Footnote-2916291
+Node: Gawk I18N916400
+Node: I18N Summary917049
+Node: Debugger918390
+Node: Debugging919390
+Node: Debugging Concepts919831
+Node: Debugging Terms921640
+Node: Awk Debugging924215
+Ref: Awk Debugging-Footnote-1925160
+Node: Sample Debugging Session925292
+Node: Debugger Invocation925826
+Node: Finding The Bug927212
+Node: List of Debugger Commands933686
+Node: Breakpoint Control935019
+Node: Debugger Execution Control938713
+Node: Viewing And Changing Data942075
+Node: Execution Stack945616
+Node: Debugger Info947253
+Node: Miscellaneous Debugger Commands951324
+Node: Readline Support956386
+Node: Limitations957282
+Node: Debugging Summary959836
+Node: Namespaces961115
+Node: Global Namespace962226
+Node: Qualified Names963624
+Node: Default Namespace964623
+Node: Changing The Namespace965364
+Node: Naming Rules966978
+Node: Internal Name Management968826
+Node: Namespace Example969868
+Node: Namespace And Features972430
+Node: Namespace Summary973865
+Node: Arbitrary Precision Arithmetic975342
+Node: Computer Arithmetic976829
+Ref: table-numeric-ranges980595
+Ref: table-floating-point-ranges981088
+Ref: Computer Arithmetic-Footnote-1981746
+Node: Math Definitions981803
+Ref: table-ieee-formats984779
+Node: MPFR features985346
+Node: FP Math Caution987064
+Ref: FP Math Caution-Footnote-1988136
+Node: Inexactness of computations988505
+Node: Inexact representation989536
+Node: Comparing FP Values990896
+Node: Errors accumulate992137
+Node: Strange values993593
+Ref: Strange values-Footnote-1996181
+Node: Getting Accuracy996286
+Node: Try To Round998996
+Node: Setting precision999895
+Ref: table-predefined-precision-strings1000592
+Node: Setting the rounding mode1002422
+Ref: table-gawk-rounding-modes1002796
+Ref: Setting the rounding mode-Footnote-11006727
+Node: Arbitrary Precision Integers1006906
+Ref: Arbitrary Precision Integers-Footnote-11010081
+Node: Checking for MPFR1010230
+Node: POSIX Floating Point Problems1011704
+Ref: POSIX Floating Point Problems-Footnote-11015989
+Node: Floating point summary1016027
+Node: Dynamic Extensions1018217
+Node: Extension Intro1019770
+Node: Plugin License1021036
+Node: Extension Mechanism Outline1021833
+Ref: figure-load-extension1022272
+Ref: figure-register-new-function1023837
+Ref: figure-call-new-function1024929
+Node: Extension API Description1026991
+Node: Extension API Functions Introduction1028704
+Ref: table-api-std-headers1030540
+Node: General Data Types1034789
+Ref: General Data Types-Footnote-11043495
+Node: Memory Allocation Functions1043794
+Ref: Memory Allocation Functions-Footnote-11048295
+Node: Constructor Functions1048394
+Node: API Ownership of MPFR and GMP Values1052047
+Node: Registration Functions1053360
+Node: Extension Functions1054060
+Node: Exit Callback Functions1059382
+Node: Extension Version String1060632
+Node: Input Parsers1061295
+Node: Output Wrappers1074016
+Node: Two-way processors1078528
+Node: Printing Messages1080793
+Ref: Printing Messages-Footnote-11081964
+Node: Updating ERRNO1082117
+Node: Requesting Values1082856
+Ref: table-value-types-returned1083593
+Node: Accessing Parameters1084701
+Node: Symbol Table Access1085938
+Node: Symbol table by name1086450
+Ref: Symbol table by name-Footnote-11089474
+Node: Symbol table by cookie1089602
+Ref: Symbol table by cookie-Footnote-11093787
+Node: Cached values1093851
+Ref: Cached values-Footnote-11097387
+Node: Array Manipulation1097540
+Ref: Array Manipulation-Footnote-11098631
+Node: Array Data Types1098668
+Ref: Array Data Types-Footnote-11101326
+Node: Array Functions1101418
+Node: Flattening Arrays1105916
+Node: Creating Arrays1112892
+Node: Redirection API1117659
+Node: Extension API Variables1120492
+Node: Extension Versioning1121203
+Ref: gawk-api-version1121632
+Node: Extension GMP/MPFR Versioning1123363
+Node: Extension API Informational Variables1124991
+Node: Extension API Boilerplate1126064
+Node: Changes from API V11130038
+Node: Finding Extensions1131610
+Node: Extension Example1132169
+Node: Internal File Description1132967
+Node: Internal File Ops1137047
+Ref: Internal File Ops-Footnote-11148397
+Node: Using Internal File Ops1148537
+Ref: Using Internal File Ops-Footnote-11150920
+Node: Extension Samples1151194
+Node: Extension Sample File Functions1152723
+Node: Extension Sample Fnmatch1160372
+Node: Extension Sample Fork1161859
+Node: Extension Sample Inplace1163077
+Node: Extension Sample Ord1166703
+Node: Extension Sample Readdir1167539
+Ref: table-readdir-file-types1168428
+Node: Extension Sample Revout1169495
+Node: Extension Sample Rev2way1170084
+Node: Extension Sample Read write array1170824
+Node: Extension Sample Readfile1172766
+Node: Extension Sample Time1173861
+Node: Extension Sample API Tests1175613
+Node: gawkextlib1176105
+Node: Extension summary1179023
+Node: Extension Exercises1182725
+Node: Language History1183967
+Node: V7/SVR3.11185623
+Node: SVR41187775
+Node: POSIX1189209
+Node: BTL1190590
+Node: POSIX/GNU1191319
+Node: Feature History1197097
+Node: Common Extensions1214272
+Node: Ranges and Locales1215555
+Ref: Ranges and Locales-Footnote-11220171
+Ref: Ranges and Locales-Footnote-21220198
+Ref: Ranges and Locales-Footnote-31220433
+Node: Contributors1220656
+Node: History summary1226653
+Node: Installation1228033
+Node: Gawk Distribution1228977
+Node: Getting1229461
+Node: Extracting1230424
+Node: Distribution contents1232062
+Node: Unix Installation1238542
+Node: Quick Installation1239224
+Node: Compiling with MPFR1241705
+Node: Shell Startup Files1242397
+Node: Additional Configuration Options1243486
+Node: Configuration Philosophy1245801
+Node: Non-Unix Installation1248170
+Node: PC Installation1248630
+Node: PC Binary Installation1249468
+Node: PC Compiling1249903
+Node: PC Using1251020
+Node: Cygwin1254573
+Node: MSYS1255797
+Node: VMS Installation1256399
+Node: VMS Compilation1257190
+Ref: VMS Compilation-Footnote-11258419
+Node: VMS Dynamic Extensions1258477
+Node: VMS Installation Details1260162
+Node: VMS Running1262415
+Node: VMS GNV1266694
+Node: VMS Old Gawk1267429
+Node: Bugs1267900
+Node: Bug address1268649
+Node: Usenet1271631
+Node: Performance bugs1272640
+Node: Maintainers1275497
+Node: Other Versions1276692
+Node: Installation summary1284557
+Node: Notes1285766
+Node: Compatibility Mode1286560
+Node: Additions1287342
+Node: Accessing The Source1288267
+Node: Adding Code1289704
+Node: New Ports1295923
+Node: Derived Files1300298
+Ref: Derived Files-Footnote-11305958
+Ref: Derived Files-Footnote-21305993
+Ref: Derived Files-Footnote-31306591
+Node: Future Extensions1306705
+Node: Implementation Limitations1307363
+Node: Extension Design1308573
+Node: Old Extension Problems1309717
+Ref: Old Extension Problems-Footnote-11311235
+Node: Extension New Mechanism Goals1311292
+Ref: Extension New Mechanism Goals-Footnote-11314656
+Node: Extension Other Design Decisions1314845
+Node: Extension Future Growth1316958
+Node: Notes summary1317564
+Node: Basic Concepts1318722
+Node: Basic High Level1319403
+Ref: figure-general-flow1319685
+Ref: figure-process-flow1320370
+Ref: Basic High Level-Footnote-11323671
+Node: Basic Data Typing1323856
+Node: Glossary1327184
+Node: Copying1359071
+Node: GNU Free Documentation License1396614
+Node: Index1421734

End Tag Table