aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1442
1 files changed, 786 insertions, 656 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 022965d1..0d4ec9f9 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -381,6 +381,8 @@ in (a) below. A copy of the license is included in the section entitled
* Arrays Summary:: Summary of arrays.
* Built-in:: Summarizes the built-in functions.
* Calling Built-in:: How to call built-in functions.
+* Boolean Functions:: A function that returns Boolean
+ values.
* Numeric Functions:: Functions that work with numbers,
including 'int()', 'sin()'
and 'rand()'.
@@ -490,6 +492,7 @@ in (a) below. A copy of the license is included in the section entitled
* Programs Summary:: Summary of programs.
* Programs Exercises:: Exercises.
* Nondecimal Data:: Allowing nondecimal input data.
+* Boolean Typed Values:: Values with 'number|bool' type.
* Array Sorting:: Facilities for controlling array
traversal and sorting arrays.
* Controlling Array Traversal:: How to use PROCINFO["sorted_in"].
@@ -553,6 +556,7 @@ in (a) below. A copy of the license is included in the section entitled
* Inexact representation:: Numbers are not exactly represented.
* Comparing FP Values:: How to compare floating point values.
* Errors accumulate:: Errors get bigger as they go.
+* Strange values:: A few words about infinities and NaNs.
* Getting Accuracy:: Getting more accuracy takes some work.
* Try To Round:: Add digits and round.
* Setting precision:: How to set the precision.
@@ -3223,7 +3227,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
@@ -6974,8 +6980,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
@@ -12783,6 +12789,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
@@ -12795,7 +12802,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
--------------------------------
@@ -12839,9 +12846,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
@@ -12867,7 +12889,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()'
@@ -12965,7 +12987,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
@@ -13533,7 +13555,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.
@@ -13679,7 +13701,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
@@ -13896,7 +13918,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
@@ -14213,7 +14235,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.
@@ -14395,7 +14417,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
@@ -14419,6 +14441,9 @@ contexts.
'"number"'
X is a number.
+ '"number|bool"'
+ X is a Boolean typed value (*note Boolean Typed Values::).
+
'"string"'
X is a string.
@@ -14480,7 +14505,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
@@ -15159,7 +15184,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
@@ -20906,6 +20931,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.
@@ -20915,7 +20941,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
===================================
@@ -20958,9 +20984,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
@@ -20979,7 +21049,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
@@ -21218,7 +21288,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
@@ -21358,7 +21428,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
@@ -21553,7 +21623,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':
@@ -21633,7 +21703,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
@@ -21895,7 +21965,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
@@ -21931,7 +22001,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
@@ -24288,18 +24358,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.
@@ -24358,11 +24420,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
@@ -24455,6 +24512,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
@@ -24519,7 +24577,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
..........................
@@ -24567,6 +24625,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
@@ -25513,7 +25629,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'.
@@ -25526,6 +25643,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
@@ -25541,6 +25659,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.
@@ -25851,6 +25970,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
@@ -26576,16 +26700,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
@@ -33255,8 +33380,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
@@ -35413,6 +35538,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)
@@ -37002,6 +37128,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)
@@ -38228,606 +38355,609 @@ Index

Tag Table:
Node: Top1200
-Node: Foreword345061
-Node: Foreword449503
-Node: Preface51035
-Ref: Preface-Footnote-153894
-Ref: Preface-Footnote-254003
-Ref: Preface-Footnote-354237
-Node: History54379
-Node: Names56731
-Ref: Names-Footnote-157835
-Node: This Manual57982
-Ref: This Manual-Footnote-164621
-Node: Conventions64721
-Node: Manual History67090
-Ref: Manual History-Footnote-170087
-Ref: Manual History-Footnote-270128
-Node: How To Contribute70202
-Node: Acknowledgments71128
-Node: Getting Started76065
-Node: Running gawk78504
-Node: One-shot79694
-Node: Read Terminal80957
-Node: Long82950
-Node: Executable Scripts84463
-Ref: Executable Scripts-Footnote-187096
-Node: Comments87199
-Node: Quoting89683
-Node: DOS Quoting95209
-Node: Sample Data Files97265
-Node: Very Simple99860
-Node: Two Rules105962
-Node: More Complex107847
-Node: Statements/Lines110179
-Ref: Statements/Lines-Footnote-1114663
-Node: Other Features114928
-Node: When115864
-Ref: When-Footnote-1117618
-Node: Intro Summary117683
-Node: Invoking Gawk118567
-Node: Command Line120081
-Node: Options120879
-Ref: Options-Footnote-1138793
-Ref: Options-Footnote-2139024
-Node: Other Arguments139049
-Node: Naming Standard Input143060
-Node: Environment Variables144270
-Node: AWKPATH Variable144828
-Ref: AWKPATH Variable-Footnote-1148240
-Ref: AWKPATH Variable-Footnote-2148274
-Node: AWKLIBPATH Variable148645
-Ref: AWKLIBPATH Variable-Footnote-1150342
-Node: Other Environment Variables150717
-Node: Exit Status154538
-Node: Include Files155215
-Node: Loading Shared Libraries158905
-Node: Obsolete160333
-Node: Undocumented161025
-Node: Invoking Summary161322
-Node: Regexp164163
-Node: Regexp Usage165617
-Node: Escape Sequences167654
-Node: Regexp Operators173895
-Node: Regexp Operator Details174380
-Ref: Regexp Operator Details-Footnote-1181744
-Node: Interval Expressions181891
-Ref: Interval Expressions-Footnote-1183312
-Node: Bracket Expressions183410
-Ref: table-char-classes185886
-Node: Leftmost Longest189212
-Node: Computed Regexps190515
-Node: GNU Regexp Operators193942
-Node: Case-sensitivity197679
-Ref: Case-sensitivity-Footnote-1200545
-Ref: Case-sensitivity-Footnote-2200780
-Node: Regexp Summary200888
-Node: Reading Files202354
-Node: Records204623
-Node: awk split records205698
-Node: gawk split records210398
-Ref: gawk split records-Footnote-1215472
-Node: Fields215509
-Node: Nonconstant Fields218250
-Ref: Nonconstant Fields-Footnote-1220486
-Node: Changing Fields220690
-Node: Field Separators226721
-Node: Default Field Splitting229419
-Node: Regexp Field Splitting230537
-Node: Single Character Fields234214
-Node: Command Line Field Separator235274
-Node: Full Line Fields238492
-Ref: Full Line Fields-Footnote-1240014
-Ref: Full Line Fields-Footnote-2240060
-Node: Field Splitting Summary240161
-Node: Constant Size242235
-Node: Fixed width data242967
-Node: Skipping intervening246434
-Node: Allowing trailing data247232
-Node: Fields with fixed data248269
-Node: Splitting By Content249787
-Ref: Splitting By Content-Footnote-1253570
-Node: More CSV253733
-Node: Testing field creation255325
-Node: Multiple Line256950
-Node: Getline263227
-Node: Plain Getline265696
-Node: Getline/Variable268269
-Node: Getline/File269420
-Node: Getline/Variable/File270808
-Ref: Getline/Variable/File-Footnote-1272413
-Node: Getline/Pipe272501
-Node: Getline/Variable/Pipe275205
-Node: Getline/Coprocess276340
-Node: Getline/Variable/Coprocess277607
-Node: Getline Notes278349
-Node: Getline Summary281146
-Ref: table-getline-variants281570
-Node: Read Timeout282318
-Ref: Read Timeout-Footnote-1286224
-Node: Retrying Input286282
-Node: Command-line directories287481
-Node: Input Summary288387
-Node: Input Exercises291559
-Node: Printing291993
-Node: Print293827
-Node: Print Examples295284
-Node: Output Separators298064
-Node: OFMT300081
-Node: Printf301437
-Node: Basic Printf302222
-Node: Control Letters303796
-Node: Format Modifiers308960
-Node: Printf Examples314975
-Node: Redirection317461
-Node: Special FD324302
-Ref: Special FD-Footnote-1327470
-Node: Special Files327544
-Node: Other Inherited Files328161
-Node: Special Network329162
-Node: Special Caveats330022
-Node: Close Files And Pipes330971
-Ref: table-close-pipe-return-values337878
-Ref: Close Files And Pipes-Footnote-1338691
-Ref: Close Files And Pipes-Footnote-2338839
-Node: Nonfatal338991
-Node: Output Summary341329
-Node: Output Exercises342551
-Node: Expressions343230
-Node: Values344418
-Node: Constants345096
-Node: Scalar Constants345787
-Ref: Scalar Constants-Footnote-1348297
-Node: Nondecimal-numbers348547
-Node: Regexp Constants351548
-Node: Using Constant Regexps352074
-Node: Standard Regexp Constants352696
-Node: Strong Regexp Constants355884
-Node: Variables358896
-Node: Using Variables359553
-Node: Assignment Options361463
-Node: Conversion363934
-Node: Strings And Numbers364458
-Ref: Strings And Numbers-Footnote-1367521
-Node: Locale influences conversions367630
-Ref: table-locale-affects370388
-Node: All Operators371006
-Node: Arithmetic Ops371635
-Node: Concatenation374351
-Ref: Concatenation-Footnote-1377198
-Node: Assignment Ops377305
-Ref: table-assign-ops382296
-Node: Increment Ops383609
-Node: Truth Values and Conditions387069
-Node: Truth Values388143
-Node: Typing and Comparison389191
-Node: Variable Typing390011
-Ref: Variable Typing-Footnote-1396474
-Ref: Variable Typing-Footnote-2396546
-Node: Comparison Operators396623
-Ref: table-relational-ops397042
-Node: POSIX String Comparison400537
-Ref: POSIX String Comparison-Footnote-1402232
-Ref: POSIX String Comparison-Footnote-2402371
-Node: Boolean Ops402455
-Ref: Boolean Ops-Footnote-1406937
-Node: Conditional Exp407029
-Node: Function Calls408765
-Node: Precedence412642
-Node: Locales416301
-Node: Expressions Summary417933
-Node: Patterns and Actions420506
-Node: Pattern Overview421626
-Node: Regexp Patterns423303
-Node: Expression Patterns423845
-Node: Ranges427626
-Node: BEGIN/END430734
-Node: Using BEGIN/END431495
-Ref: Using BEGIN/END-Footnote-1434249
-Node: I/O And BEGIN/END434355
-Node: BEGINFILE/ENDFILE436668
-Node: Empty439899
-Node: Using Shell Variables440216
-Node: Action Overview442490
-Node: Statements444815
-Node: If Statement446663
-Node: While Statement448158
-Node: Do Statement450186
-Node: For Statement451334
-Node: Switch Statement454505
-Node: Break Statement456946
-Node: Continue Statement459038
-Node: Next Statement460865
-Node: Nextfile Statement463248
-Node: Exit Statement465937
-Node: Built-in Variables468340
-Node: User-modified469473
-Node: Auto-set477240
-Ref: Auto-set-Footnote-1494047
-Ref: Auto-set-Footnote-2494253
-Node: ARGC and ARGV494309
-Node: Pattern Action Summary498522
-Node: Arrays500952
-Node: Array Basics502281
-Node: Array Intro503125
-Ref: figure-array-elements505100
-Ref: Array Intro-Footnote-1507804
-Node: Reference to Elements507932
-Node: Assigning Elements510396
-Node: Array Example510887
-Node: Scanning an Array512646
-Node: Controlling Scanning515668
-Ref: Controlling Scanning-Footnote-1522124
-Node: Numeric Array Subscripts522440
-Node: Uninitialized Subscripts524624
-Node: Delete526243
-Ref: Delete-Footnote-1528995
-Node: Multidimensional529052
-Node: Multiscanning532147
-Node: Arrays of Arrays533738
-Node: Arrays Summary538506
-Node: Functions540599
-Node: Built-in541637
-Node: Calling Built-in542718
-Node: Numeric Functions544714
-Ref: Numeric Functions-Footnote-1548742
-Ref: Numeric Functions-Footnote-2549390
-Ref: Numeric Functions-Footnote-3549438
-Node: String Functions549710
-Ref: String Functions-Footnote-1573851
-Ref: String Functions-Footnote-2573979
-Ref: String Functions-Footnote-3574227
-Node: Gory Details574314
-Ref: table-sub-escapes576105
-Ref: table-sub-proposed577624
-Ref: table-posix-sub578987
-Ref: table-gensub-escapes580528
-Ref: Gory Details-Footnote-1581351
-Node: I/O Functions581505
-Ref: table-system-return-values587959
-Ref: I/O Functions-Footnote-1590039
-Ref: I/O Functions-Footnote-2590187
-Node: Time Functions590307
-Ref: Time Functions-Footnote-1600978
-Ref: Time Functions-Footnote-2601046
-Ref: Time Functions-Footnote-3601204
-Ref: Time Functions-Footnote-4601315
-Ref: Time Functions-Footnote-5601427
-Ref: Time Functions-Footnote-6601654
-Node: Bitwise Functions601920
-Ref: table-bitwise-ops602514
-Ref: Bitwise Functions-Footnote-1608577
-Ref: Bitwise Functions-Footnote-2608750
-Node: Type Functions608941
-Node: I18N Functions611804
-Node: User-defined613455
-Node: Definition Syntax614267
-Ref: Definition Syntax-Footnote-1619961
-Node: Function Example620032
-Ref: Function Example-Footnote-1622954
-Node: Function Calling622976
-Node: Calling A Function623564
-Node: Variable Scope624522
-Node: Pass By Value/Reference627516
-Node: Function Caveats630160
-Ref: Function Caveats-Footnote-1632207
-Node: Return Statement632327
-Node: Dynamic Typing635306
-Node: Indirect Calls636236
-Ref: Indirect Calls-Footnote-1646488
-Node: Functions Summary646616
-Node: Library Functions649321
-Ref: Library Functions-Footnote-1652928
-Ref: Library Functions-Footnote-2653071
-Node: Library Names653242
-Ref: Library Names-Footnote-1656909
-Ref: Library Names-Footnote-2657132
-Node: General Functions657218
-Node: Strtonum Function658400
-Node: Assert Function661422
-Node: Round Function664748
-Node: Cliff Random Function666288
-Node: Ordinal Functions667304
-Ref: Ordinal Functions-Footnote-1670367
-Ref: Ordinal Functions-Footnote-2670619
-Node: Join Function670829
-Ref: Join Function-Footnote-1672599
-Node: Getlocaltime Function672799
-Node: Readfile Function676541
-Node: Shell Quoting678518
-Node: Isnumeric Function679946
-Node: Data File Management680927
-Node: Filetrans Function681559
-Node: Rewind Function685655
-Node: File Checking687564
-Ref: File Checking-Footnote-1688898
-Node: Empty Files689099
-Node: Ignoring Assigns691078
-Node: Getopt Function692628
-Ref: Getopt Function-Footnote-1707851
-Node: Passwd Functions708051
-Ref: Passwd Functions-Footnote-1716890
-Node: Group Functions716978
-Ref: Group Functions-Footnote-1724876
-Node: Walking Arrays725083
-Node: Library Functions Summary728091
-Node: Library Exercises729497
-Node: Sample Programs729962
-Node: Running Examples730732
-Node: Clones731460
-Node: Cut Program732684
-Node: Egrep Program742824
-Node: Id Program751825
-Node: Split Program761772
-Ref: Split Program-Footnote-1771665
-Node: Tee Program771838
-Node: Uniq Program774628
-Node: Wc Program782216
-Node: Bytes vs. Characters782603
-Node: Using extensions784151
-Node: wc program784905
-Node: Miscellaneous Programs789770
-Node: Dupword Program790983
-Node: Alarm Program793013
-Node: Translate Program797868
-Ref: Translate Program-Footnote-1802433
-Node: Labels Program802703
-Ref: Labels Program-Footnote-1806054
-Node: Word Sorting806138
-Node: History Sorting810210
-Node: Extract Program812435
-Node: Simple Sed820489
-Node: Igawk Program823563
-Ref: Igawk Program-Footnote-1837894
-Ref: Igawk Program-Footnote-2838096
-Ref: Igawk Program-Footnote-3838218
-Node: Anagram Program838333
-Node: Signature Program841395
-Node: Programs Summary842642
-Node: Programs Exercises843856
-Ref: Programs Exercises-Footnote-1847986
-Node: Advanced Features848072
-Node: Nondecimal Data850139
-Node: Array Sorting851730
-Node: Controlling Array Traversal852430
-Ref: Controlling Array Traversal-Footnote-1860798
-Node: Array Sorting Functions860916
-Ref: Array Sorting Functions-Footnote-1866007
-Node: Two-way I/O866203
-Ref: Two-way I/O-Footnote-1873929
-Ref: Two-way I/O-Footnote-2874116
-Node: TCP/IP Networking874198
-Node: Profiling877316
-Node: Extension Philosophy886625
-Node: Advanced Features Summary888104
-Node: Internationalization890119
-Node: I18N and L10N891793
-Node: Explaining gettext892480
-Ref: Explaining gettext-Footnote-1898372
-Ref: Explaining gettext-Footnote-2898557
-Node: Programmer i18n898722
-Ref: Programmer i18n-Footnote-1903671
-Node: Translator i18n903720
-Node: String Extraction904514
-Ref: String Extraction-Footnote-1905646
-Node: Printf Ordering905732
-Ref: Printf Ordering-Footnote-1908518
-Node: I18N Portability908582
-Ref: I18N Portability-Footnote-1911038
-Node: I18N Example911101
-Ref: I18N Example-Footnote-1914376
-Ref: I18N Example-Footnote-2914449
-Node: Gawk I18N914558
-Node: I18N Summary915207
-Node: Debugger916548
-Node: Debugging917548
-Node: Debugging Concepts917989
-Node: Debugging Terms919798
-Node: Awk Debugging922373
-Ref: Awk Debugging-Footnote-1923318
-Node: Sample Debugging Session923450
-Node: Debugger Invocation923984
-Node: Finding The Bug925370
-Node: List of Debugger Commands931844
-Node: Breakpoint Control933177
-Node: Debugger Execution Control936871
-Node: Viewing And Changing Data940233
-Node: Execution Stack943774
-Node: Debugger Info945411
-Node: Miscellaneous Debugger Commands949482
-Node: Readline Support954544
-Node: Limitations955440
-Node: Debugging Summary957994
-Node: Namespaces959273
-Node: Global Namespace960384
-Node: Qualified Names961782
-Node: Default Namespace962781
-Node: Changing The Namespace963522
-Node: Naming Rules965136
-Node: Internal Name Management966984
-Node: Namespace Example968026
-Node: Namespace And Features970588
-Node: Namespace Summary972023
-Node: Arbitrary Precision Arithmetic973500
-Node: Computer Arithmetic974987
-Ref: table-numeric-ranges978753
-Ref: table-floating-point-ranges979246
-Ref: Computer Arithmetic-Footnote-1979904
-Node: Math Definitions979961
-Ref: table-ieee-formats983277
-Ref: Math Definitions-Footnote-1983880
-Node: MPFR features983985
-Node: FP Math Caution985703
-Ref: FP Math Caution-Footnote-1986775
-Node: Inexactness of computations987144
-Node: Inexact representation988104
-Node: Comparing FP Values989464
-Node: Errors accumulate990705
-Node: Getting Accuracy992138
-Node: Try To Round994848
-Node: Setting precision995747
-Ref: table-predefined-precision-strings996444
-Node: Setting the rounding mode998274
-Ref: table-gawk-rounding-modes998648
-Ref: Setting the rounding mode-Footnote-11002579
-Node: Arbitrary Precision Integers1002758
-Ref: Arbitrary Precision Integers-Footnote-11005933
-Node: Checking for MPFR1006082
-Node: POSIX Floating Point Problems1007556
-Ref: POSIX Floating Point Problems-Footnote-11011841
-Node: Floating point summary1011879
-Node: Dynamic Extensions1014069
-Node: Extension Intro1015622
-Node: Plugin License1016888
-Node: Extension Mechanism Outline1017685
-Ref: figure-load-extension1018124
-Ref: figure-register-new-function1019689
-Ref: figure-call-new-function1020781
-Node: Extension API Description1022843
-Node: Extension API Functions Introduction1024556
-Ref: table-api-std-headers1026392
-Node: General Data Types1030641
-Ref: General Data Types-Footnote-11039271
-Node: Memory Allocation Functions1039570
-Ref: Memory Allocation Functions-Footnote-11044071
-Node: Constructor Functions1044170
-Node: API Ownership of MPFR and GMP Values1047636
-Node: Registration Functions1048949
-Node: Extension Functions1049649
-Node: Exit Callback Functions1054971
-Node: Extension Version String1056221
-Node: Input Parsers1056884
-Node: Output Wrappers1069605
-Node: Two-way processors1074117
-Node: Printing Messages1076382
-Ref: Printing Messages-Footnote-11077553
-Node: Updating ERRNO1077706
-Node: Requesting Values1078445
-Ref: table-value-types-returned1079182
-Node: Accessing Parameters1080118
-Node: Symbol Table Access1081355
-Node: Symbol table by name1081867
-Ref: Symbol table by name-Footnote-11084891
-Node: Symbol table by cookie1085019
-Ref: Symbol table by cookie-Footnote-11089204
-Node: Cached values1089268
-Ref: Cached values-Footnote-11092804
-Node: Array Manipulation1092957
-Ref: Array Manipulation-Footnote-11094048
-Node: Array Data Types1094085
-Ref: Array Data Types-Footnote-11096743
-Node: Array Functions1096835
-Node: Flattening Arrays1101333
-Node: Creating Arrays1108309
-Node: Redirection API1113076
-Node: Extension API Variables1115909
-Node: Extension Versioning1116620
-Ref: gawk-api-version1117049
-Node: Extension GMP/MPFR Versioning1118780
-Node: Extension API Informational Variables1120408
-Node: Extension API Boilerplate1121481
-Node: Changes from API V11125455
-Node: Finding Extensions1127027
-Node: Extension Example1127586
-Node: Internal File Description1128384
-Node: Internal File Ops1132464
-Ref: Internal File Ops-Footnote-11143814
-Node: Using Internal File Ops1143954
-Ref: Using Internal File Ops-Footnote-11146337
-Node: Extension Samples1146611
-Node: Extension Sample File Functions1148140
-Node: Extension Sample Fnmatch1155789
-Node: Extension Sample Fork1157276
-Node: Extension Sample Inplace1158494
-Node: Extension Sample Ord1162120
-Node: Extension Sample Readdir1162956
-Ref: table-readdir-file-types1163845
-Node: Extension Sample Revout1164912
-Node: Extension Sample Rev2way1165501
-Node: Extension Sample Read write array1166241
-Node: Extension Sample Readfile1168183
-Node: Extension Sample Time1169278
-Node: Extension Sample API Tests1171030
-Node: gawkextlib1171522
-Node: Extension summary1174440
-Node: Extension Exercises1178142
-Node: Language History1179384
-Node: V7/SVR3.11181040
-Node: SVR41183192
-Node: POSIX1184626
-Node: BTL1186007
-Node: POSIX/GNU1186736
-Node: Feature History1192514
-Node: Common Extensions1209689
-Node: Ranges and Locales1210972
-Ref: Ranges and Locales-Footnote-11215588
-Ref: Ranges and Locales-Footnote-21215615
-Ref: Ranges and Locales-Footnote-31215850
-Node: Contributors1216073
-Node: History summary1222070
-Node: Installation1223450
-Node: Gawk Distribution1224394
-Node: Getting1224878
-Node: Extracting1225841
-Node: Distribution contents1227479
-Node: Unix Installation1233959
-Node: Quick Installation1234641
-Node: Compiling with MPFR1237122
-Node: Shell Startup Files1237814
-Node: Additional Configuration Options1238903
-Node: Configuration Philosophy1241218
-Node: Non-Unix Installation1243587
-Node: PC Installation1244047
-Node: PC Binary Installation1244885
-Node: PC Compiling1245320
-Node: PC Using1246437
-Node: Cygwin1249990
-Node: MSYS1251214
-Node: VMS Installation1251816
-Node: VMS Compilation1252607
-Ref: VMS Compilation-Footnote-11253836
-Node: VMS Dynamic Extensions1253894
-Node: VMS Installation Details1255579
-Node: VMS Running1257832
-Node: VMS GNV1262111
-Node: VMS Old Gawk1262846
-Node: Bugs1263317
-Node: Bug address1264066
-Node: Usenet1267048
-Node: Performance bugs1268057
-Node: Maintainers1270914
-Node: Other Versions1272109
-Node: Installation summary1279974
-Node: Notes1281183
-Node: Compatibility Mode1281977
-Node: Additions1282759
-Node: Accessing The Source1283684
-Node: Adding Code1285121
-Node: New Ports1291340
-Node: Derived Files1295715
-Ref: Derived Files-Footnote-11301375
-Ref: Derived Files-Footnote-21301410
-Ref: Derived Files-Footnote-31302008
-Node: Future Extensions1302122
-Node: Implementation Limitations1302780
-Node: Extension Design1303990
-Node: Old Extension Problems1305134
-Ref: Old Extension Problems-Footnote-11306652
-Node: Extension New Mechanism Goals1306709
-Ref: Extension New Mechanism Goals-Footnote-11310073
-Node: Extension Other Design Decisions1310262
-Node: Extension Future Growth1312375
-Node: Notes summary1312981
-Node: Basic Concepts1314139
-Node: Basic High Level1314820
-Ref: figure-general-flow1315102
-Ref: figure-process-flow1315787
-Ref: Basic High Level-Footnote-11319088
-Node: Basic Data Typing1319273
-Node: Glossary1322601
-Node: Copying1354486
-Node: GNU Free Documentation License1392029
-Node: Index1417149
+Node: Foreword345332
+Node: Foreword449774
+Node: Preface51306
+Ref: Preface-Footnote-154165
+Ref: Preface-Footnote-254274
+Ref: Preface-Footnote-354508
+Node: History54650
+Node: Names57002
+Ref: Names-Footnote-158106
+Node: This Manual58253
+Ref: This Manual-Footnote-164892
+Node: Conventions64992
+Node: Manual History67361
+Ref: Manual History-Footnote-170358
+Ref: Manual History-Footnote-270399
+Node: How To Contribute70473
+Node: Acknowledgments71399
+Node: Getting Started76336
+Node: Running gawk78775
+Node: One-shot79965
+Node: Read Terminal81228
+Node: Long83221
+Node: Executable Scripts84734
+Ref: Executable Scripts-Footnote-187367
+Node: Comments87470
+Node: Quoting89954
+Node: DOS Quoting95480
+Node: Sample Data Files97536
+Node: Very Simple100131
+Node: Two Rules106233
+Node: More Complex108118
+Node: Statements/Lines110450
+Ref: Statements/Lines-Footnote-1114934
+Node: Other Features115199
+Node: When116135
+Ref: When-Footnote-1117889
+Node: Intro Summary117954
+Node: Invoking Gawk118838
+Node: Command Line120352
+Node: Options121150
+Ref: Options-Footnote-1139064
+Ref: Options-Footnote-2139295
+Node: Other Arguments139320
+Node: Naming Standard Input143331
+Node: Environment Variables144541
+Node: AWKPATH Variable145099
+Ref: AWKPATH Variable-Footnote-1148511
+Ref: AWKPATH Variable-Footnote-2148545
+Node: AWKLIBPATH Variable148916
+Ref: AWKLIBPATH Variable-Footnote-1150613
+Node: Other Environment Variables150988
+Node: Exit Status154940
+Node: Include Files155617
+Node: Loading Shared Libraries159307
+Node: Obsolete160735
+Node: Undocumented161427
+Node: Invoking Summary161724
+Node: Regexp164565
+Node: Regexp Usage166019
+Node: Escape Sequences168056
+Node: Regexp Operators174297
+Node: Regexp Operator Details174782
+Ref: Regexp Operator Details-Footnote-1182146
+Node: Interval Expressions182293
+Ref: Interval Expressions-Footnote-1183714
+Node: Bracket Expressions183812
+Ref: table-char-classes186288
+Node: Leftmost Longest189614
+Node: Computed Regexps190917
+Node: GNU Regexp Operators194344
+Node: Case-sensitivity198081
+Ref: Case-sensitivity-Footnote-1200947
+Ref: Case-sensitivity-Footnote-2201182
+Node: Regexp Summary201290
+Node: Reading Files202756
+Node: Records205025
+Node: awk split records206100
+Node: gawk split records210800
+Ref: gawk split records-Footnote-1215874
+Node: Fields215911
+Node: Nonconstant Fields218652
+Ref: Nonconstant Fields-Footnote-1220888
+Node: Changing Fields221092
+Node: Field Separators227123
+Node: Default Field Splitting229821
+Node: Regexp Field Splitting230939
+Node: Single Character Fields234616
+Node: Command Line Field Separator235676
+Node: Full Line Fields238894
+Ref: Full Line Fields-Footnote-1240416
+Ref: Full Line Fields-Footnote-2240462
+Node: Field Splitting Summary240563
+Node: Constant Size242637
+Node: Fixed width data243369
+Node: Skipping intervening246836
+Node: Allowing trailing data247634
+Node: Fields with fixed data248671
+Node: Splitting By Content250189
+Ref: Splitting By Content-Footnote-1253972
+Node: More CSV254135
+Node: Testing field creation255727
+Node: Multiple Line257352
+Node: Getline263629
+Node: Plain Getline266098
+Node: Getline/Variable268671
+Node: Getline/File269822
+Node: Getline/Variable/File271210
+Ref: Getline/Variable/File-Footnote-1272815
+Node: Getline/Pipe272903
+Node: Getline/Variable/Pipe275607
+Node: Getline/Coprocess276742
+Node: Getline/Variable/Coprocess278009
+Node: Getline Notes278751
+Node: Getline Summary281548
+Ref: table-getline-variants281972
+Node: Read Timeout282720
+Ref: Read Timeout-Footnote-1286626
+Node: Retrying Input286684
+Node: Command-line directories287883
+Node: Input Summary288789
+Node: Input Exercises291961
+Node: Printing292395
+Node: Print294229
+Node: Print Examples295686
+Node: Output Separators298466
+Node: OFMT300483
+Node: Printf301839
+Node: Basic Printf302624
+Node: Control Letters304198
+Node: Format Modifiers309360
+Node: Printf Examples315375
+Node: Redirection317861
+Node: Special FD324702
+Ref: Special FD-Footnote-1327870
+Node: Special Files327944
+Node: Other Inherited Files328561
+Node: Special Network329562
+Node: Special Caveats330422
+Node: Close Files And Pipes331371
+Ref: table-close-pipe-return-values338278
+Ref: Close Files And Pipes-Footnote-1339091
+Ref: Close Files And Pipes-Footnote-2339239
+Node: Nonfatal339391
+Node: Output Summary341729
+Node: Output Exercises342951
+Node: Expressions343630
+Node: Values344818
+Node: Constants345496
+Node: Scalar Constants346187
+Ref: Scalar Constants-Footnote-1348697
+Node: Nondecimal-numbers348947
+Node: Regexp Constants351948
+Node: Using Constant Regexps352474
+Node: Standard Regexp Constants353096
+Node: Strong Regexp Constants356284
+Node: Variables359296
+Node: Using Variables359953
+Node: Assignment Options361863
+Node: Conversion364334
+Node: Strings And Numbers364858
+Ref: Strings And Numbers-Footnote-1367921
+Node: Locale influences conversions368030
+Ref: table-locale-affects370788
+Node: All Operators371406
+Node: Arithmetic Ops372035
+Node: Concatenation374751
+Ref: Concatenation-Footnote-1377598
+Node: Assignment Ops377705
+Ref: table-assign-ops382696
+Node: Increment Ops384009
+Node: Truth Values and Conditions387469
+Node: Truth Values388543
+Node: Typing and Comparison389591
+Node: Variable Typing390411
+Ref: Variable Typing-Footnote-1396874
+Ref: Variable Typing-Footnote-2396946
+Node: Comparison Operators397023
+Ref: table-relational-ops397442
+Node: POSIX String Comparison400937
+Ref: POSIX String Comparison-Footnote-1402632
+Ref: POSIX String Comparison-Footnote-2402771
+Node: Boolean Ops402855
+Ref: Boolean Ops-Footnote-1407337
+Node: Conditional Exp407429
+Node: Function Calls409165
+Node: Precedence413042
+Node: Locales416701
+Node: Expressions Summary418333
+Node: Patterns and Actions420906
+Node: Pattern Overview422026
+Node: Regexp Patterns423703
+Node: Expression Patterns424245
+Node: Ranges428026
+Node: BEGIN/END431134
+Node: Using BEGIN/END431895
+Ref: Using BEGIN/END-Footnote-1434649
+Node: I/O And BEGIN/END434755
+Node: BEGINFILE/ENDFILE437068
+Node: Empty440299
+Node: Using Shell Variables440616
+Node: Action Overview442890
+Node: Statements445215
+Node: If Statement447063
+Node: While Statement448558
+Node: Do Statement450586
+Node: For Statement451734
+Node: Switch Statement454905
+Node: Break Statement457346
+Node: Continue Statement459438
+Node: Next Statement461265
+Node: Nextfile Statement463648
+Node: Exit Statement466337
+Node: Built-in Variables468740
+Node: User-modified469873
+Node: Auto-set477640
+Ref: Auto-set-Footnote-1494447
+Ref: Auto-set-Footnote-2494653
+Node: ARGC and ARGV494709
+Node: Pattern Action Summary498922
+Node: Arrays501352
+Node: Array Basics502681
+Node: Array Intro503525
+Ref: figure-array-elements505500
+Ref: Array Intro-Footnote-1508204
+Node: Reference to Elements508332
+Node: Assigning Elements510796
+Node: Array Example511287
+Node: Scanning an Array513046
+Node: Controlling Scanning516068
+Ref: Controlling Scanning-Footnote-1522524
+Node: Numeric Array Subscripts522840
+Node: Uninitialized Subscripts525024
+Node: Delete526643
+Ref: Delete-Footnote-1529395
+Node: Multidimensional529452
+Node: Multiscanning532547
+Node: Arrays of Arrays534138
+Node: Arrays Summary538906
+Node: Functions540999
+Node: Built-in542037
+Node: Calling Built-in543190
+Node: Boolean Functions545186
+Node: Numeric Functions545740
+Ref: Numeric Functions-Footnote-1549767
+Ref: Numeric Functions-Footnote-2550415
+Ref: Numeric Functions-Footnote-3550463
+Node: String Functions550735
+Ref: String Functions-Footnote-1574876
+Ref: String Functions-Footnote-2575004
+Ref: String Functions-Footnote-3575252
+Node: Gory Details575339
+Ref: table-sub-escapes577130
+Ref: table-sub-proposed578649
+Ref: table-posix-sub580012
+Ref: table-gensub-escapes581553
+Ref: Gory Details-Footnote-1582376
+Node: I/O Functions582530
+Ref: table-system-return-values588984
+Ref: I/O Functions-Footnote-1591064
+Ref: I/O Functions-Footnote-2591212
+Node: Time Functions591332
+Ref: Time Functions-Footnote-1602003
+Ref: Time Functions-Footnote-2602071
+Ref: Time Functions-Footnote-3602229
+Ref: Time Functions-Footnote-4602340
+Ref: Time Functions-Footnote-5602452
+Ref: Time Functions-Footnote-6602679
+Node: Bitwise Functions602945
+Ref: table-bitwise-ops603539
+Ref: Bitwise Functions-Footnote-1609602
+Ref: Bitwise Functions-Footnote-2609775
+Node: Type Functions609966
+Node: I18N Functions612920
+Node: User-defined614571
+Node: Definition Syntax615383
+Ref: Definition Syntax-Footnote-1621077
+Node: Function Example621148
+Ref: Function Example-Footnote-1624070
+Node: Function Calling624092
+Node: Calling A Function624680
+Node: Variable Scope625638
+Node: Pass By Value/Reference628632
+Node: Function Caveats631276
+Ref: Function Caveats-Footnote-1633323
+Node: Return Statement633443
+Node: Dynamic Typing636422
+Node: Indirect Calls637352
+Ref: Indirect Calls-Footnote-1647607
+Node: Functions Summary647735
+Node: Library Functions650440
+Ref: Library Functions-Footnote-1654047
+Ref: Library Functions-Footnote-2654190
+Node: Library Names654361
+Ref: Library Names-Footnote-1658028
+Ref: Library Names-Footnote-2658251
+Node: General Functions658337
+Node: Strtonum Function659519
+Node: Assert Function662541
+Node: Round Function665867
+Node: Cliff Random Function667407
+Node: Ordinal Functions668423
+Ref: Ordinal Functions-Footnote-1671486
+Ref: Ordinal Functions-Footnote-2671738
+Node: Join Function671948
+Ref: Join Function-Footnote-1673718
+Node: Getlocaltime Function673918
+Node: Readfile Function677660
+Node: Shell Quoting679637
+Node: Isnumeric Function681065
+Node: Data File Management682046
+Node: Filetrans Function682678
+Node: Rewind Function686774
+Node: File Checking688683
+Ref: File Checking-Footnote-1690017
+Node: Empty Files690218
+Node: Ignoring Assigns692197
+Node: Getopt Function693747
+Ref: Getopt Function-Footnote-1708970
+Node: Passwd Functions709170
+Ref: Passwd Functions-Footnote-1718009
+Node: Group Functions718097
+Ref: Group Functions-Footnote-1725995
+Node: Walking Arrays726202
+Node: Library Functions Summary729210
+Node: Library Exercises730616
+Node: Sample Programs731081
+Node: Running Examples731851
+Node: Clones732579
+Node: Cut Program733803
+Node: Egrep Program743943
+Node: Id Program752944
+Node: Split Program762891
+Ref: Split Program-Footnote-1772784
+Node: Tee Program772957
+Node: Uniq Program775747
+Node: Wc Program783335
+Node: Bytes vs. Characters783722
+Node: Using extensions785270
+Node: wc program786024
+Node: Miscellaneous Programs790889
+Node: Dupword Program792102
+Node: Alarm Program794132
+Node: Translate Program798987
+Ref: Translate Program-Footnote-1803552
+Node: Labels Program803822
+Ref: Labels Program-Footnote-1807173
+Node: Word Sorting807257
+Node: History Sorting811329
+Node: Extract Program813554
+Node: Simple Sed821608
+Node: Igawk Program824682
+Ref: Igawk Program-Footnote-1839013
+Ref: Igawk Program-Footnote-2839215
+Ref: Igawk Program-Footnote-3839337
+Node: Anagram Program839452
+Node: Signature Program842514
+Node: Programs Summary843761
+Node: Programs Exercises844975
+Ref: Programs Exercises-Footnote-1849105
+Node: Advanced Features849191
+Node: Nondecimal Data851322
+Node: Boolean Typed Values852920
+Node: Array Sorting854801
+Node: Controlling Array Traversal855506
+Ref: Controlling Array Traversal-Footnote-1863874
+Node: Array Sorting Functions863992
+Ref: Array Sorting Functions-Footnote-1869083
+Node: Two-way I/O869279
+Ref: Two-way I/O-Footnote-1877005
+Ref: Two-way I/O-Footnote-2877192
+Node: TCP/IP Networking877274
+Node: Profiling880392
+Node: Extension Philosophy889701
+Node: Advanced Features Summary891180
+Node: Internationalization893195
+Node: I18N and L10N894869
+Node: Explaining gettext895556
+Ref: Explaining gettext-Footnote-1901448
+Ref: Explaining gettext-Footnote-2901633
+Node: Programmer i18n901798
+Ref: Programmer i18n-Footnote-1906747
+Node: Translator i18n906796
+Node: String Extraction907590
+Ref: String Extraction-Footnote-1908722
+Node: Printf Ordering908808
+Ref: Printf Ordering-Footnote-1911594
+Node: I18N Portability911658
+Ref: I18N Portability-Footnote-1914114
+Node: I18N Example914177
+Ref: I18N Example-Footnote-1917452
+Ref: I18N Example-Footnote-2917525
+Node: Gawk I18N917634
+Node: I18N Summary918283
+Node: Debugger919624
+Node: Debugging920624
+Node: Debugging Concepts921065
+Node: Debugging Terms922874
+Node: Awk Debugging925449
+Ref: Awk Debugging-Footnote-1926394
+Node: Sample Debugging Session926526
+Node: Debugger Invocation927060
+Node: Finding The Bug928446
+Node: List of Debugger Commands934920
+Node: Breakpoint Control936253
+Node: Debugger Execution Control939947
+Node: Viewing And Changing Data943309
+Node: Execution Stack946850
+Node: Debugger Info948487
+Node: Miscellaneous Debugger Commands952558
+Node: Readline Support957620
+Node: Limitations958516
+Node: Debugging Summary961070
+Node: Namespaces962349
+Node: Global Namespace963460
+Node: Qualified Names964858
+Node: Default Namespace965857
+Node: Changing The Namespace966598
+Node: Naming Rules968212
+Node: Internal Name Management970060
+Node: Namespace Example971102
+Node: Namespace And Features973664
+Node: Namespace Summary975099
+Node: Arbitrary Precision Arithmetic976576
+Node: Computer Arithmetic978063
+Ref: table-numeric-ranges981829
+Ref: table-floating-point-ranges982322
+Ref: Computer Arithmetic-Footnote-1982980
+Node: Math Definitions983037
+Ref: table-ieee-formats986013
+Node: MPFR features986580
+Node: FP Math Caution988298
+Ref: FP Math Caution-Footnote-1989370
+Node: Inexactness of computations989739
+Node: Inexact representation990770
+Node: Comparing FP Values992130
+Node: Errors accumulate993371
+Node: Strange values994827
+Ref: Strange values-Footnote-1997415
+Node: Getting Accuracy997520
+Node: Try To Round1000230
+Node: Setting precision1001129
+Ref: table-predefined-precision-strings1001826
+Node: Setting the rounding mode1003656
+Ref: table-gawk-rounding-modes1004030
+Ref: Setting the rounding mode-Footnote-11007961
+Node: Arbitrary Precision Integers1008140
+Ref: Arbitrary Precision Integers-Footnote-11011315
+Node: Checking for MPFR1011464
+Node: POSIX Floating Point Problems1012938
+Ref: POSIX Floating Point Problems-Footnote-11017223
+Node: Floating point summary1017261
+Node: Dynamic Extensions1019451
+Node: Extension Intro1021004
+Node: Plugin License1022270
+Node: Extension Mechanism Outline1023067
+Ref: figure-load-extension1023506
+Ref: figure-register-new-function1025071
+Ref: figure-call-new-function1026163
+Node: Extension API Description1028225
+Node: Extension API Functions Introduction1029938
+Ref: table-api-std-headers1031774
+Node: General Data Types1036023
+Ref: General Data Types-Footnote-11044729
+Node: Memory Allocation Functions1045028
+Ref: Memory Allocation Functions-Footnote-11049529
+Node: Constructor Functions1049628
+Node: API Ownership of MPFR and GMP Values1053281
+Node: Registration Functions1054594
+Node: Extension Functions1055294
+Node: Exit Callback Functions1060616
+Node: Extension Version String1061866
+Node: Input Parsers1062529
+Node: Output Wrappers1075250
+Node: Two-way processors1079762
+Node: Printing Messages1082027
+Ref: Printing Messages-Footnote-11083198
+Node: Updating ERRNO1083351
+Node: Requesting Values1084090
+Ref: table-value-types-returned1084827
+Node: Accessing Parameters1085935
+Node: Symbol Table Access1087172
+Node: Symbol table by name1087684
+Ref: Symbol table by name-Footnote-11090708
+Node: Symbol table by cookie1090836
+Ref: Symbol table by cookie-Footnote-11095021
+Node: Cached values1095085
+Ref: Cached values-Footnote-11098621
+Node: Array Manipulation1098774
+Ref: Array Manipulation-Footnote-11099865
+Node: Array Data Types1099902
+Ref: Array Data Types-Footnote-11102560
+Node: Array Functions1102652
+Node: Flattening Arrays1107150
+Node: Creating Arrays1114126
+Node: Redirection API1118893
+Node: Extension API Variables1121726
+Node: Extension Versioning1122437
+Ref: gawk-api-version1122866
+Node: Extension GMP/MPFR Versioning1124597
+Node: Extension API Informational Variables1126225
+Node: Extension API Boilerplate1127298
+Node: Changes from API V11131272
+Node: Finding Extensions1132844
+Node: Extension Example1133403
+Node: Internal File Description1134201
+Node: Internal File Ops1138281
+Ref: Internal File Ops-Footnote-11149631
+Node: Using Internal File Ops1149771
+Ref: Using Internal File Ops-Footnote-11152154
+Node: Extension Samples1152428
+Node: Extension Sample File Functions1153957
+Node: Extension Sample Fnmatch1161606
+Node: Extension Sample Fork1163093
+Node: Extension Sample Inplace1164311
+Node: Extension Sample Ord1167937
+Node: Extension Sample Readdir1168773
+Ref: table-readdir-file-types1169662
+Node: Extension Sample Revout1170729
+Node: Extension Sample Rev2way1171318
+Node: Extension Sample Read write array1172058
+Node: Extension Sample Readfile1174000
+Node: Extension Sample Time1175095
+Node: Extension Sample API Tests1176847
+Node: gawkextlib1177339
+Node: Extension summary1180257
+Node: Extension Exercises1183959
+Node: Language History1185201
+Node: V7/SVR3.11186857
+Node: SVR41189009
+Node: POSIX1190443
+Node: BTL1191824
+Node: POSIX/GNU1192553
+Node: Feature History1198331
+Node: Common Extensions1215506
+Node: Ranges and Locales1216789
+Ref: Ranges and Locales-Footnote-11221405
+Ref: Ranges and Locales-Footnote-21221432
+Ref: Ranges and Locales-Footnote-31221667
+Node: Contributors1221890
+Node: History summary1227887
+Node: Installation1229267
+Node: Gawk Distribution1230211
+Node: Getting1230695
+Node: Extracting1231658
+Node: Distribution contents1233296
+Node: Unix Installation1239776
+Node: Quick Installation1240458
+Node: Compiling with MPFR1242939
+Node: Shell Startup Files1243631
+Node: Additional Configuration Options1244720
+Node: Configuration Philosophy1247035
+Node: Non-Unix Installation1249404
+Node: PC Installation1249864
+Node: PC Binary Installation1250702
+Node: PC Compiling1251137
+Node: PC Using1252254
+Node: Cygwin1255807
+Node: MSYS1257031
+Node: VMS Installation1257633
+Node: VMS Compilation1258424
+Ref: VMS Compilation-Footnote-11259653
+Node: VMS Dynamic Extensions1259711
+Node: VMS Installation Details1261396
+Node: VMS Running1263649
+Node: VMS GNV1267928
+Node: VMS Old Gawk1268663
+Node: Bugs1269134
+Node: Bug address1269883
+Node: Usenet1272865
+Node: Performance bugs1273874
+Node: Maintainers1276731
+Node: Other Versions1277926
+Node: Installation summary1285791
+Node: Notes1287000
+Node: Compatibility Mode1287794
+Node: Additions1288576
+Node: Accessing The Source1289501
+Node: Adding Code1290938
+Node: New Ports1297157
+Node: Derived Files1301532
+Ref: Derived Files-Footnote-11307192
+Ref: Derived Files-Footnote-21307227
+Ref: Derived Files-Footnote-31307825
+Node: Future Extensions1307939
+Node: Implementation Limitations1308597
+Node: Extension Design1309807
+Node: Old Extension Problems1310951
+Ref: Old Extension Problems-Footnote-11312469
+Node: Extension New Mechanism Goals1312526
+Ref: Extension New Mechanism Goals-Footnote-11315890
+Node: Extension Other Design Decisions1316079
+Node: Extension Future Growth1318192
+Node: Notes summary1318798
+Node: Basic Concepts1319956
+Node: Basic High Level1320637
+Ref: figure-general-flow1320919
+Ref: figure-process-flow1321604
+Ref: Basic High Level-Footnote-11324905
+Node: Basic Data Typing1325090
+Node: Glossary1328418
+Node: Copying1360305
+Node: GNU Free Documentation License1397848
+Node: Index1422968

End Tag Table