aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1444
1 files changed, 787 insertions, 657 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 94ebf260..e6f85e82 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
@@ -6990,8 +6996,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
@@ -12811,6 +12817,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
@@ -12823,7 +12830,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
--------------------------------
@@ -12867,9 +12874,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
@@ -12895,7 +12917,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()'
@@ -12993,7 +13015,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
@@ -13569,7 +13591,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.
@@ -13715,7 +13737,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
@@ -13932,7 +13954,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
@@ -14249,7 +14271,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.
@@ -14431,7 +14453,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
@@ -14455,6 +14477,9 @@ contexts.
'"number"'
X is a number.
+ '"number|bool"'
+ X is a Boolean typed value (*note Boolean Typed Values::).
+
'"string"'
X is a string.
@@ -14516,7 +14541,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
@@ -15195,7 +15220,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
@@ -20948,6 +20973,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.
@@ -20957,7 +20983,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
===================================
@@ -21000,9 +21026,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
@@ -21021,7 +21091,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
@@ -21260,7 +21330,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
@@ -21405,7 +21475,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
@@ -21600,7 +21670,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':
@@ -21680,7 +21750,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
@@ -21942,7 +22012,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
@@ -21978,7 +22048,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
@@ -24335,18 +24405,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.
@@ -24405,11 +24467,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
@@ -24502,6 +24559,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
@@ -24566,7 +24624,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
..........................
@@ -24614,6 +24672,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
@@ -25560,7 +25676,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'.
@@ -25573,6 +25690,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
@@ -25588,6 +25706,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.
@@ -25898,6 +26017,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
@@ -26623,16 +26747,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
@@ -33425,8 +33550,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
@@ -35583,6 +35708,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)
@@ -37174,6 +37300,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)
@@ -38401,607 +38528,610 @@ Index

Tag Table:
Node: Top1200
-Node: Foreword345084
-Node: Foreword449526
-Node: Preface51058
-Ref: Preface-Footnote-153917
-Ref: Preface-Footnote-254026
-Ref: Preface-Footnote-354260
-Node: History54402
-Node: Names56754
-Ref: Names-Footnote-157858
-Node: This Manual58005
-Ref: This Manual-Footnote-164644
-Node: Conventions64744
-Node: Manual History67113
-Ref: Manual History-Footnote-170110
-Ref: Manual History-Footnote-270151
-Node: How To Contribute70225
-Node: Acknowledgments71151
-Node: Getting Started76088
-Node: Running gawk78527
-Node: One-shot79717
-Node: Read Terminal80980
-Node: Long82973
-Node: Executable Scripts84486
-Ref: Executable Scripts-Footnote-187119
-Node: Comments87222
-Node: Quoting89706
-Node: DOS Quoting95232
-Node: Sample Data Files97288
-Node: Very Simple99883
-Node: Two Rules105985
-Node: More Complex107870
-Node: Statements/Lines110202
-Ref: Statements/Lines-Footnote-1114686
-Node: Other Features114951
-Node: When115887
-Ref: When-Footnote-1117641
-Node: Intro Summary117706
-Node: Invoking Gawk118590
-Node: Command Line120104
-Node: Options120902
-Ref: Options-Footnote-1138816
-Ref: Options-Footnote-2139047
-Node: Other Arguments139072
-Node: Naming Standard Input143083
-Node: Environment Variables144293
-Node: AWKPATH Variable144851
-Ref: AWKPATH Variable-Footnote-1148263
-Ref: AWKPATH Variable-Footnote-2148297
-Node: AWKLIBPATH Variable148668
-Ref: AWKLIBPATH Variable-Footnote-1150365
-Node: Other Environment Variables150740
-Node: Exit Status154561
-Node: Include Files155238
-Node: Loading Shared Libraries158928
-Node: Obsolete160356
-Node: Undocumented161048
-Node: Invoking Summary161345
-Node: Regexp164186
-Node: Regexp Usage165640
-Node: Escape Sequences167677
-Node: Regexp Operators173918
-Node: Regexp Operator Details174403
-Ref: Regexp Operator Details-Footnote-1181767
-Node: Interval Expressions181914
-Ref: Interval Expressions-Footnote-1184114
-Node: Bracket Expressions184212
-Ref: table-char-classes186688
-Node: Leftmost Longest190014
-Node: Computed Regexps191317
-Node: GNU Regexp Operators194744
-Node: Case-sensitivity198481
-Ref: Case-sensitivity-Footnote-1201347
-Ref: Case-sensitivity-Footnote-2201582
-Node: Regexp Summary201690
-Node: Reading Files203156
-Node: Records205425
-Node: awk split records206500
-Node: gawk split records211200
-Ref: gawk split records-Footnote-1216274
-Node: Fields216311
-Node: Nonconstant Fields219052
-Ref: Nonconstant Fields-Footnote-1221288
-Node: Changing Fields221492
-Node: Field Separators227523
-Node: Default Field Splitting230221
-Node: Regexp Field Splitting231339
-Node: Single Character Fields235016
-Node: Command Line Field Separator236076
-Node: Full Line Fields239294
-Ref: Full Line Fields-Footnote-1240816
-Ref: Full Line Fields-Footnote-2240862
-Node: Field Splitting Summary240963
-Node: Constant Size243037
-Node: Fixed width data243769
-Node: Skipping intervening247236
-Node: Allowing trailing data248034
-Node: Fields with fixed data249071
-Node: Splitting By Content250589
-Ref: Splitting By Content-Footnote-1254372
-Node: More CSV254535
-Node: Testing field creation256127
-Node: Multiple Line257752
-Node: Getline264029
-Node: Plain Getline266498
-Node: Getline/Variable269071
-Node: Getline/File270222
-Node: Getline/Variable/File271610
-Ref: Getline/Variable/File-Footnote-1273215
-Node: Getline/Pipe273303
-Node: Getline/Variable/Pipe276007
-Node: Getline/Coprocess277142
-Node: Getline/Variable/Coprocess278409
-Node: Getline Notes279151
-Node: Getline Summary281948
-Ref: table-getline-variants282372
-Node: Read Timeout283120
-Ref: Read Timeout-Footnote-1287026
-Node: Retrying Input287084
-Node: Command-line directories288283
-Node: Input Summary289189
-Node: Input Exercises292361
-Node: Printing292795
-Node: Print294629
-Node: Print Examples296086
-Node: Output Separators298866
-Node: OFMT300883
-Node: Printf302239
-Node: Basic Printf303024
-Node: Control Letters304598
-Node: Format Modifiers309762
-Node: Printf Examples315777
-Node: Redirection318263
-Node: Special FD325104
-Ref: Special FD-Footnote-1328272
-Node: Special Files328346
-Node: Other Inherited Files328963
-Node: Special Network329964
-Node: Special Caveats330824
-Node: Close Files And Pipes331773
-Ref: table-close-pipe-return-values338680
-Ref: Close Files And Pipes-Footnote-1339493
-Ref: Close Files And Pipes-Footnote-2339641
-Node: Nonfatal339793
-Node: Output Summary342131
-Node: Output Exercises343353
-Node: Expressions344032
-Node: Values345220
-Node: Constants345898
-Node: Scalar Constants346589
-Ref: Scalar Constants-Footnote-1349099
-Node: Nondecimal-numbers349349
-Node: Regexp Constants352350
-Node: Using Constant Regexps352876
-Node: Standard Regexp Constants353498
-Node: Strong Regexp Constants356686
-Node: Variables360110
-Node: Using Variables360767
-Node: Assignment Options362677
-Node: Conversion365148
-Node: Strings And Numbers365672
-Ref: Strings And Numbers-Footnote-1368735
-Node: Locale influences conversions368844
-Ref: table-locale-affects371602
-Node: All Operators372220
-Node: Arithmetic Ops372849
-Node: Concatenation375565
-Ref: Concatenation-Footnote-1378412
-Node: Assignment Ops378519
-Ref: table-assign-ops383510
-Node: Increment Ops384823
-Node: Truth Values and Conditions388283
-Node: Truth Values389357
-Node: Typing and Comparison390405
-Node: Variable Typing391225
-Ref: Variable Typing-Footnote-1397688
-Ref: Variable Typing-Footnote-2397760
-Node: Comparison Operators397837
-Ref: table-relational-ops398256
-Node: POSIX String Comparison401751
-Ref: POSIX String Comparison-Footnote-1403446
-Ref: POSIX String Comparison-Footnote-2403585
-Node: Boolean Ops403669
-Ref: Boolean Ops-Footnote-1408151
-Node: Conditional Exp408243
-Node: Function Calls409979
-Node: Precedence413856
-Node: Locales417515
-Node: Expressions Summary419147
-Node: Patterns and Actions421720
-Node: Pattern Overview422840
-Node: Regexp Patterns424517
-Node: Expression Patterns425059
-Node: Ranges428840
-Node: BEGIN/END431948
-Node: Using BEGIN/END432709
-Ref: Using BEGIN/END-Footnote-1435463
-Node: I/O And BEGIN/END435569
-Node: BEGINFILE/ENDFILE437882
-Node: Empty441113
-Node: Using Shell Variables441430
-Node: Action Overview443704
-Node: Statements446029
-Node: If Statement447877
-Node: While Statement449372
-Node: Do Statement451400
-Node: For Statement452548
-Node: Switch Statement455719
-Node: Break Statement458160
-Node: Continue Statement460252
-Node: Next Statement462079
-Node: Nextfile Statement464462
-Node: Exit Statement467151
-Node: Built-in Variables469554
-Node: User-modified470687
-Node: Auto-set478454
-Ref: Auto-set-Footnote-1495261
-Ref: Auto-set-Footnote-2495467
-Node: ARGC and ARGV495523
-Node: Pattern Action Summary499736
-Node: Arrays502166
-Node: Array Basics503495
-Node: Array Intro504339
-Ref: figure-array-elements506314
-Ref: Array Intro-Footnote-1509018
-Node: Reference to Elements509146
-Node: Assigning Elements511610
-Node: Array Example512101
-Node: Scanning an Array513860
-Node: Controlling Scanning516882
-Ref: Controlling Scanning-Footnote-1523338
-Node: Numeric Array Subscripts523654
-Node: Uninitialized Subscripts525838
-Node: Delete527457
-Ref: Delete-Footnote-1530209
-Node: Multidimensional530266
-Node: Multiscanning533361
-Node: Arrays of Arrays534952
-Node: Arrays Summary539720
-Node: Functions541813
-Node: Built-in542851
-Node: Calling Built-in543932
-Node: Numeric Functions545928
-Ref: Numeric Functions-Footnote-1549956
-Ref: Numeric Functions-Footnote-2550604
-Ref: Numeric Functions-Footnote-3550652
-Node: String Functions550924
-Ref: String Functions-Footnote-1575439
-Ref: String Functions-Footnote-2575567
-Ref: String Functions-Footnote-3575815
-Node: Gory Details575902
-Ref: table-sub-escapes577693
-Ref: table-sub-proposed579212
-Ref: table-posix-sub580575
-Ref: table-gensub-escapes582116
-Ref: Gory Details-Footnote-1582939
-Node: I/O Functions583093
-Ref: table-system-return-values589547
-Ref: I/O Functions-Footnote-1591627
-Ref: I/O Functions-Footnote-2591775
-Node: Time Functions591895
-Ref: Time Functions-Footnote-1602566
-Ref: Time Functions-Footnote-2602634
-Ref: Time Functions-Footnote-3602792
-Ref: Time Functions-Footnote-4602903
-Ref: Time Functions-Footnote-5603015
-Ref: Time Functions-Footnote-6603242
-Node: Bitwise Functions603508
-Ref: table-bitwise-ops604102
-Ref: Bitwise Functions-Footnote-1610165
-Ref: Bitwise Functions-Footnote-2610338
-Node: Type Functions610529
-Node: I18N Functions613392
-Node: User-defined615043
-Node: Definition Syntax615855
-Ref: Definition Syntax-Footnote-1621549
-Node: Function Example621620
-Ref: Function Example-Footnote-1624542
-Node: Function Calling624564
-Node: Calling A Function625152
-Node: Variable Scope626110
-Node: Pass By Value/Reference629104
-Node: Function Caveats631748
-Ref: Function Caveats-Footnote-1633795
-Node: Return Statement633915
-Node: Dynamic Typing636894
-Node: Indirect Calls637824
-Ref: Indirect Calls-Footnote-1648076
-Node: Functions Summary648204
-Node: Library Functions650909
-Ref: Library Functions-Footnote-1654516
-Ref: Library Functions-Footnote-2654659
-Node: Library Names654830
-Ref: Library Names-Footnote-1658497
-Ref: Library Names-Footnote-2658720
-Node: General Functions658806
-Node: Strtonum Function659988
-Node: Assert Function663010
-Node: Round Function666336
-Node: Cliff Random Function667876
-Node: Ordinal Functions668892
-Ref: Ordinal Functions-Footnote-1671955
-Ref: Ordinal Functions-Footnote-2672207
-Node: Join Function672417
-Ref: Join Function-Footnote-1674187
-Node: Getlocaltime Function674387
-Node: Readfile Function678129
-Node: Shell Quoting680106
-Node: Isnumeric Function681534
-Node: Data File Management682922
-Node: Filetrans Function683554
-Node: Rewind Function687650
-Node: File Checking689559
-Ref: File Checking-Footnote-1690893
-Node: Empty Files691094
-Node: Ignoring Assigns693073
-Node: Getopt Function694623
-Ref: Getopt Function-Footnote-1709846
-Node: Passwd Functions710046
-Ref: Passwd Functions-Footnote-1718885
-Node: Group Functions718973
-Ref: Group Functions-Footnote-1726871
-Node: Walking Arrays727078
-Node: Library Functions Summary730086
-Node: Library Exercises731492
-Node: Sample Programs731957
-Node: Running Examples732727
-Node: Clones733455
-Node: Cut Program734679
-Node: Egrep Program744819
-Node: Id Program753820
-Node: Split Program763767
-Ref: Split Program-Footnote-1773660
-Node: Tee Program773833
-Node: Uniq Program776623
-Node: Wc Program784211
-Node: Bytes vs. Characters784598
-Node: Using extensions786146
-Node: wc program786900
-Node: Miscellaneous Programs791765
-Node: Dupword Program792978
-Node: Alarm Program795008
-Node: Translate Program799863
-Ref: Translate Program-Footnote-1804428
-Node: Labels Program804698
-Ref: Labels Program-Footnote-1808049
-Node: Word Sorting808133
-Node: History Sorting812205
-Node: Extract Program814430
-Node: Simple Sed822484
-Node: Igawk Program825558
-Ref: Igawk Program-Footnote-1839889
-Ref: Igawk Program-Footnote-2840091
-Ref: Igawk Program-Footnote-3840213
-Node: Anagram Program840328
-Node: Signature Program843390
-Node: Programs Summary844637
-Node: Programs Exercises845851
-Ref: Programs Exercises-Footnote-1849981
-Node: Advanced Features850067
-Node: Nondecimal Data852134
-Node: Array Sorting853725
-Node: Controlling Array Traversal854425
-Ref: Controlling Array Traversal-Footnote-1862793
-Node: Array Sorting Functions862911
-Ref: Array Sorting Functions-Footnote-1868285
-Node: Two-way I/O868481
-Ref: Two-way I/O-Footnote-1876207
-Ref: Two-way I/O-Footnote-2876394
-Node: TCP/IP Networking876476
-Node: Profiling879594
-Node: Extension Philosophy888903
-Node: Advanced Features Summary890382
-Node: Internationalization892397
-Node: I18N and L10N894071
-Node: Explaining gettext894758
-Ref: Explaining gettext-Footnote-1900650
-Ref: Explaining gettext-Footnote-2900835
-Node: Programmer i18n901000
-Ref: Programmer i18n-Footnote-1905949
-Node: Translator i18n905998
-Node: String Extraction906792
-Ref: String Extraction-Footnote-1907924
-Node: Printf Ordering908010
-Ref: Printf Ordering-Footnote-1910796
-Node: I18N Portability910860
-Ref: I18N Portability-Footnote-1913316
-Node: I18N Example913379
-Ref: I18N Example-Footnote-1916654
-Ref: I18N Example-Footnote-2916727
-Node: Gawk I18N916836
-Node: I18N Summary917485
-Node: Debugger918826
-Node: Debugging919826
-Node: Debugging Concepts920267
-Node: Debugging Terms922076
-Node: Awk Debugging924651
-Ref: Awk Debugging-Footnote-1925596
-Node: Sample Debugging Session925728
-Node: Debugger Invocation926262
-Node: Finding The Bug927648
-Node: List of Debugger Commands934122
-Node: Breakpoint Control935455
-Node: Debugger Execution Control939149
-Node: Viewing And Changing Data942511
-Node: Execution Stack946052
-Node: Debugger Info947689
-Node: Miscellaneous Debugger Commands951760
-Node: Readline Support956822
-Node: Limitations957718
-Node: Debugging Summary960272
-Node: Namespaces961551
-Node: Global Namespace962662
-Node: Qualified Names964060
-Node: Default Namespace965059
-Node: Changing The Namespace965800
-Node: Naming Rules967414
-Node: Internal Name Management969262
-Node: Namespace Example970304
-Node: Namespace And Features972866
-Node: Namespace Summary974301
-Node: Arbitrary Precision Arithmetic975778
-Node: Computer Arithmetic977265
-Ref: table-numeric-ranges981031
-Ref: table-floating-point-ranges981524
-Ref: Computer Arithmetic-Footnote-1982182
-Node: Math Definitions982239
-Ref: table-ieee-formats985555
-Ref: Math Definitions-Footnote-1986158
-Node: MPFR features986263
-Node: FP Math Caution987981
-Ref: FP Math Caution-Footnote-1989053
-Node: Inexactness of computations989422
-Node: Inexact representation990382
-Node: Comparing FP Values991742
-Node: Errors accumulate992983
-Node: Getting Accuracy994416
-Node: Try To Round997126
-Node: Setting precision998025
-Ref: table-predefined-precision-strings998722
-Node: Setting the rounding mode1000552
-Ref: table-gawk-rounding-modes1000926
-Ref: Setting the rounding mode-Footnote-11004857
-Node: Arbitrary Precision Integers1005036
-Ref: Arbitrary Precision Integers-Footnote-11008211
-Node: Checking for MPFR1008360
-Node: POSIX Floating Point Problems1009834
-Ref: POSIX Floating Point Problems-Footnote-11014119
-Node: Floating point summary1014157
-Node: Dynamic Extensions1016347
-Node: Extension Intro1017900
-Node: Plugin License1019166
-Node: Extension Mechanism Outline1019963
-Ref: figure-load-extension1020402
-Ref: figure-register-new-function1021967
-Ref: figure-call-new-function1023059
-Node: Extension API Description1025121
-Node: Extension API Functions Introduction1026834
-Ref: table-api-std-headers1028670
-Node: General Data Types1032919
-Ref: General Data Types-Footnote-11041549
-Node: Memory Allocation Functions1041848
-Ref: Memory Allocation Functions-Footnote-11046349
-Node: Constructor Functions1046448
-Node: API Ownership of MPFR and GMP Values1049914
-Node: Registration Functions1051227
-Node: Extension Functions1051927
-Node: Exit Callback Functions1057249
-Node: Extension Version String1058499
-Node: Input Parsers1059162
-Node: Output Wrappers1071883
-Node: Two-way processors1076395
-Node: Printing Messages1078660
-Ref: Printing Messages-Footnote-11079831
-Node: Updating ERRNO1079984
-Node: Requesting Values1080723
-Ref: table-value-types-returned1081460
-Node: Accessing Parameters1082396
-Node: Symbol Table Access1083633
-Node: Symbol table by name1084145
-Ref: Symbol table by name-Footnote-11087169
-Node: Symbol table by cookie1087297
-Ref: Symbol table by cookie-Footnote-11091482
-Node: Cached values1091546
-Ref: Cached values-Footnote-11095082
-Node: Array Manipulation1095235
-Ref: Array Manipulation-Footnote-11096326
-Node: Array Data Types1096363
-Ref: Array Data Types-Footnote-11099021
-Node: Array Functions1099113
-Node: Flattening Arrays1103611
-Node: Creating Arrays1110587
-Node: Redirection API1115354
-Node: Extension API Variables1118187
-Node: Extension Versioning1118898
-Ref: gawk-api-version1119327
-Node: Extension GMP/MPFR Versioning1121058
-Node: Extension API Informational Variables1122686
-Node: Extension API Boilerplate1123759
-Node: Changes from API V11127733
-Node: Finding Extensions1129305
-Node: Extension Example1129864
-Node: Internal File Description1130662
-Node: Internal File Ops1134742
-Ref: Internal File Ops-Footnote-11146092
-Node: Using Internal File Ops1146232
-Ref: Using Internal File Ops-Footnote-11148615
-Node: Extension Samples1148889
-Node: Extension Sample File Functions1150418
-Node: Extension Sample Fnmatch1158067
-Node: Extension Sample Fork1159554
-Node: Extension Sample Inplace1160772
-Node: Extension Sample Ord1164398
-Node: Extension Sample Readdir1165234
-Ref: table-readdir-file-types1166123
-Node: Extension Sample Revout1167190
-Node: Extension Sample Rev2way1167779
-Node: Extension Sample Read write array1168519
-Node: Extension Sample Readfile1170461
-Node: Extension Sample Time1171556
-Node: Extension Sample API Tests1173308
-Node: gawkextlib1173800
-Node: Extension summary1176718
-Node: Extension Exercises1180420
-Node: Language History1181662
-Node: V7/SVR3.11183318
-Node: SVR41185470
-Node: POSIX1186904
-Node: BTL1188285
-Node: POSIX/GNU1189014
-Node: Feature History1194792
-Node: Common Extensions1211967
-Node: Ranges and Locales1213250
-Ref: Ranges and Locales-Footnote-11217866
-Ref: Ranges and Locales-Footnote-21217893
-Ref: Ranges and Locales-Footnote-31218128
-Node: Contributors1218351
-Node: History summary1224348
-Node: Installation1225728
-Node: Gawk Distribution1226672
-Node: Getting1227156
-Node: Extracting1228119
-Node: Distribution contents1229757
-Node: Unix Installation1236237
-Node: Quick Installation1236919
-Node: Compiling with MPFR1239400
-Node: Shell Startup Files1240092
-Node: Additional Configuration Options1241181
-Node: Configuration Philosophy1243496
-Node: Non-Unix Installation1245865
-Node: PC Installation1246325
-Node: PC Binary Installation1247163
-Node: PC Compiling1247598
-Node: PC Using1248715
-Node: Cygwin1252268
-Node: MSYS1253492
-Node: VMS Installation1254094
-Node: VMS Compilation1254813
-Ref: VMS Compilation-Footnote-11256042
-Node: VMS Dynamic Extensions1256100
-Node: VMS Installation Details1257785
-Node: VMS Running1260047
-Node: VMS GNV1264326
-Node: Bugs1265040
-Node: Bug definition1265920
-Node: Bug address1268424
-Node: Usenet1271812
-Node: Performance bugs1272821
-Node: Asking for help1275742
-Node: Maintainers1277704
-Node: Other Versions1278898
-Node: Installation summary1286750
-Node: Notes1288114
-Node: Compatibility Mode1288908
-Node: Additions1289690
-Node: Accessing The Source1290615
-Node: Adding Code1292052
-Node: New Ports1298271
-Node: Derived Files1302646
-Ref: Derived Files-Footnote-11308306
-Ref: Derived Files-Footnote-21308341
-Ref: Derived Files-Footnote-31308939
-Node: Future Extensions1309053
-Node: Implementation Limitations1309711
-Node: Extension Design1310921
-Node: Old Extension Problems1312065
-Ref: Old Extension Problems-Footnote-11313583
-Node: Extension New Mechanism Goals1313640
-Ref: Extension New Mechanism Goals-Footnote-11317004
-Node: Extension Other Design Decisions1317193
-Node: Extension Future Growth1319306
-Node: Notes summary1319912
-Node: Basic Concepts1321070
-Node: Basic High Level1321751
-Ref: figure-general-flow1322033
-Ref: figure-process-flow1322718
-Ref: Basic High Level-Footnote-11326019
-Node: Basic Data Typing1326204
-Node: Glossary1329532
-Node: Copying1361417
-Node: GNU Free Documentation License1398960
-Node: Index1424080
+Node: Foreword345355
+Node: Foreword449797
+Node: Preface51329
+Ref: Preface-Footnote-154188
+Ref: Preface-Footnote-254297
+Ref: Preface-Footnote-354531
+Node: History54673
+Node: Names57025
+Ref: Names-Footnote-158129
+Node: This Manual58276
+Ref: This Manual-Footnote-164915
+Node: Conventions65015
+Node: Manual History67384
+Ref: Manual History-Footnote-170381
+Ref: Manual History-Footnote-270422
+Node: How To Contribute70496
+Node: Acknowledgments71422
+Node: Getting Started76359
+Node: Running gawk78798
+Node: One-shot79988
+Node: Read Terminal81251
+Node: Long83244
+Node: Executable Scripts84757
+Ref: Executable Scripts-Footnote-187390
+Node: Comments87493
+Node: Quoting89977
+Node: DOS Quoting95503
+Node: Sample Data Files97559
+Node: Very Simple100154
+Node: Two Rules106256
+Node: More Complex108141
+Node: Statements/Lines110473
+Ref: Statements/Lines-Footnote-1114957
+Node: Other Features115222
+Node: When116158
+Ref: When-Footnote-1117912
+Node: Intro Summary117977
+Node: Invoking Gawk118861
+Node: Command Line120375
+Node: Options121173
+Ref: Options-Footnote-1139087
+Ref: Options-Footnote-2139318
+Node: Other Arguments139343
+Node: Naming Standard Input143354
+Node: Environment Variables144564
+Node: AWKPATH Variable145122
+Ref: AWKPATH Variable-Footnote-1148534
+Ref: AWKPATH Variable-Footnote-2148568
+Node: AWKLIBPATH Variable148939
+Ref: AWKLIBPATH Variable-Footnote-1150636
+Node: Other Environment Variables151011
+Node: Exit Status154963
+Node: Include Files155640
+Node: Loading Shared Libraries159330
+Node: Obsolete160758
+Node: Undocumented161450
+Node: Invoking Summary161747
+Node: Regexp164588
+Node: Regexp Usage166042
+Node: Escape Sequences168079
+Node: Regexp Operators174320
+Node: Regexp Operator Details174805
+Ref: Regexp Operator Details-Footnote-1182169
+Node: Interval Expressions182316
+Ref: Interval Expressions-Footnote-1184516
+Node: Bracket Expressions184614
+Ref: table-char-classes187090
+Node: Leftmost Longest190416
+Node: Computed Regexps191719
+Node: GNU Regexp Operators195146
+Node: Case-sensitivity198883
+Ref: Case-sensitivity-Footnote-1201749
+Ref: Case-sensitivity-Footnote-2201984
+Node: Regexp Summary202092
+Node: Reading Files203558
+Node: Records205827
+Node: awk split records206902
+Node: gawk split records211602
+Ref: gawk split records-Footnote-1216676
+Node: Fields216713
+Node: Nonconstant Fields219454
+Ref: Nonconstant Fields-Footnote-1221690
+Node: Changing Fields221894
+Node: Field Separators227925
+Node: Default Field Splitting230623
+Node: Regexp Field Splitting231741
+Node: Single Character Fields235418
+Node: Command Line Field Separator236478
+Node: Full Line Fields239696
+Ref: Full Line Fields-Footnote-1241218
+Ref: Full Line Fields-Footnote-2241264
+Node: Field Splitting Summary241365
+Node: Constant Size243439
+Node: Fixed width data244171
+Node: Skipping intervening247638
+Node: Allowing trailing data248436
+Node: Fields with fixed data249473
+Node: Splitting By Content250991
+Ref: Splitting By Content-Footnote-1254774
+Node: More CSV254937
+Node: Testing field creation256529
+Node: Multiple Line258154
+Node: Getline264431
+Node: Plain Getline266900
+Node: Getline/Variable269473
+Node: Getline/File270624
+Node: Getline/Variable/File272012
+Ref: Getline/Variable/File-Footnote-1273617
+Node: Getline/Pipe273705
+Node: Getline/Variable/Pipe276409
+Node: Getline/Coprocess277544
+Node: Getline/Variable/Coprocess278811
+Node: Getline Notes279553
+Node: Getline Summary282350
+Ref: table-getline-variants282774
+Node: Read Timeout283522
+Ref: Read Timeout-Footnote-1287428
+Node: Retrying Input287486
+Node: Command-line directories288685
+Node: Input Summary289591
+Node: Input Exercises292763
+Node: Printing293197
+Node: Print295031
+Node: Print Examples296488
+Node: Output Separators299268
+Node: OFMT301285
+Node: Printf302641
+Node: Basic Printf303426
+Node: Control Letters305000
+Node: Format Modifiers310162
+Node: Printf Examples316177
+Node: Redirection318663
+Node: Special FD325504
+Ref: Special FD-Footnote-1328672
+Node: Special Files328746
+Node: Other Inherited Files329363
+Node: Special Network330364
+Node: Special Caveats331224
+Node: Close Files And Pipes332173
+Ref: table-close-pipe-return-values339080
+Ref: Close Files And Pipes-Footnote-1339893
+Ref: Close Files And Pipes-Footnote-2340041
+Node: Nonfatal340193
+Node: Output Summary342531
+Node: Output Exercises343753
+Node: Expressions344432
+Node: Values345620
+Node: Constants346298
+Node: Scalar Constants346989
+Ref: Scalar Constants-Footnote-1349499
+Node: Nondecimal-numbers349749
+Node: Regexp Constants352750
+Node: Using Constant Regexps353276
+Node: Standard Regexp Constants353898
+Node: Strong Regexp Constants357086
+Node: Variables360510
+Node: Using Variables361167
+Node: Assignment Options363077
+Node: Conversion365548
+Node: Strings And Numbers366072
+Ref: Strings And Numbers-Footnote-1369135
+Node: Locale influences conversions369244
+Ref: table-locale-affects372002
+Node: All Operators372620
+Node: Arithmetic Ops373249
+Node: Concatenation375965
+Ref: Concatenation-Footnote-1378812
+Node: Assignment Ops378919
+Ref: table-assign-ops383910
+Node: Increment Ops385223
+Node: Truth Values and Conditions388683
+Node: Truth Values389757
+Node: Typing and Comparison390805
+Node: Variable Typing391625
+Ref: Variable Typing-Footnote-1398088
+Ref: Variable Typing-Footnote-2398160
+Node: Comparison Operators398237
+Ref: table-relational-ops398656
+Node: POSIX String Comparison402151
+Ref: POSIX String Comparison-Footnote-1403846
+Ref: POSIX String Comparison-Footnote-2403985
+Node: Boolean Ops404069
+Ref: Boolean Ops-Footnote-1408551
+Node: Conditional Exp408643
+Node: Function Calls410379
+Node: Precedence414256
+Node: Locales417915
+Node: Expressions Summary419547
+Node: Patterns and Actions422120
+Node: Pattern Overview423240
+Node: Regexp Patterns424917
+Node: Expression Patterns425459
+Node: Ranges429240
+Node: BEGIN/END432348
+Node: Using BEGIN/END433109
+Ref: Using BEGIN/END-Footnote-1435863
+Node: I/O And BEGIN/END435969
+Node: BEGINFILE/ENDFILE438282
+Node: Empty441513
+Node: Using Shell Variables441830
+Node: Action Overview444104
+Node: Statements446429
+Node: If Statement448277
+Node: While Statement449772
+Node: Do Statement451800
+Node: For Statement452948
+Node: Switch Statement456119
+Node: Break Statement458560
+Node: Continue Statement460652
+Node: Next Statement462479
+Node: Nextfile Statement464862
+Node: Exit Statement467551
+Node: Built-in Variables469954
+Node: User-modified471087
+Node: Auto-set478854
+Ref: Auto-set-Footnote-1495661
+Ref: Auto-set-Footnote-2495867
+Node: ARGC and ARGV495923
+Node: Pattern Action Summary500136
+Node: Arrays502566
+Node: Array Basics503895
+Node: Array Intro504739
+Ref: figure-array-elements506714
+Ref: Array Intro-Footnote-1509418
+Node: Reference to Elements509546
+Node: Assigning Elements512010
+Node: Array Example512501
+Node: Scanning an Array514260
+Node: Controlling Scanning517282
+Ref: Controlling Scanning-Footnote-1523738
+Node: Numeric Array Subscripts524054
+Node: Uninitialized Subscripts526238
+Node: Delete527857
+Ref: Delete-Footnote-1530609
+Node: Multidimensional530666
+Node: Multiscanning533761
+Node: Arrays of Arrays535352
+Node: Arrays Summary540120
+Node: Functions542213
+Node: Built-in543251
+Node: Calling Built-in544404
+Node: Boolean Functions546400
+Node: Numeric Functions546954
+Ref: Numeric Functions-Footnote-1550981
+Ref: Numeric Functions-Footnote-2551629
+Ref: Numeric Functions-Footnote-3551677
+Node: String Functions551949
+Ref: String Functions-Footnote-1576464
+Ref: String Functions-Footnote-2576592
+Ref: String Functions-Footnote-3576840
+Node: Gory Details576927
+Ref: table-sub-escapes578718
+Ref: table-sub-proposed580237
+Ref: table-posix-sub581600
+Ref: table-gensub-escapes583141
+Ref: Gory Details-Footnote-1583964
+Node: I/O Functions584118
+Ref: table-system-return-values590572
+Ref: I/O Functions-Footnote-1592652
+Ref: I/O Functions-Footnote-2592800
+Node: Time Functions592920
+Ref: Time Functions-Footnote-1603591
+Ref: Time Functions-Footnote-2603659
+Ref: Time Functions-Footnote-3603817
+Ref: Time Functions-Footnote-4603928
+Ref: Time Functions-Footnote-5604040
+Ref: Time Functions-Footnote-6604267
+Node: Bitwise Functions604533
+Ref: table-bitwise-ops605127
+Ref: Bitwise Functions-Footnote-1611190
+Ref: Bitwise Functions-Footnote-2611363
+Node: Type Functions611554
+Node: I18N Functions614508
+Node: User-defined616159
+Node: Definition Syntax616971
+Ref: Definition Syntax-Footnote-1622665
+Node: Function Example622736
+Ref: Function Example-Footnote-1625658
+Node: Function Calling625680
+Node: Calling A Function626268
+Node: Variable Scope627226
+Node: Pass By Value/Reference630220
+Node: Function Caveats632864
+Ref: Function Caveats-Footnote-1634911
+Node: Return Statement635031
+Node: Dynamic Typing638010
+Node: Indirect Calls638940
+Ref: Indirect Calls-Footnote-1649195
+Node: Functions Summary649323
+Node: Library Functions652028
+Ref: Library Functions-Footnote-1655635
+Ref: Library Functions-Footnote-2655778
+Node: Library Names655949
+Ref: Library Names-Footnote-1659616
+Ref: Library Names-Footnote-2659839
+Node: General Functions659925
+Node: Strtonum Function661107
+Node: Assert Function664129
+Node: Round Function667455
+Node: Cliff Random Function668995
+Node: Ordinal Functions670011
+Ref: Ordinal Functions-Footnote-1673074
+Ref: Ordinal Functions-Footnote-2673326
+Node: Join Function673536
+Ref: Join Function-Footnote-1675306
+Node: Getlocaltime Function675506
+Node: Readfile Function679248
+Node: Shell Quoting681225
+Node: Isnumeric Function682653
+Node: Data File Management684041
+Node: Filetrans Function684673
+Node: Rewind Function688769
+Node: File Checking690678
+Ref: File Checking-Footnote-1692012
+Node: Empty Files692213
+Node: Ignoring Assigns694192
+Node: Getopt Function695742
+Ref: Getopt Function-Footnote-1710965
+Node: Passwd Functions711165
+Ref: Passwd Functions-Footnote-1720004
+Node: Group Functions720092
+Ref: Group Functions-Footnote-1727990
+Node: Walking Arrays728197
+Node: Library Functions Summary731205
+Node: Library Exercises732611
+Node: Sample Programs733076
+Node: Running Examples733846
+Node: Clones734574
+Node: Cut Program735798
+Node: Egrep Program745938
+Node: Id Program754939
+Node: Split Program764886
+Ref: Split Program-Footnote-1774779
+Node: Tee Program774952
+Node: Uniq Program777742
+Node: Wc Program785330
+Node: Bytes vs. Characters785717
+Node: Using extensions787265
+Node: wc program788019
+Node: Miscellaneous Programs792884
+Node: Dupword Program794097
+Node: Alarm Program796127
+Node: Translate Program800982
+Ref: Translate Program-Footnote-1805547
+Node: Labels Program805817
+Ref: Labels Program-Footnote-1809168
+Node: Word Sorting809252
+Node: History Sorting813324
+Node: Extract Program815549
+Node: Simple Sed823603
+Node: Igawk Program826677
+Ref: Igawk Program-Footnote-1841008
+Ref: Igawk Program-Footnote-2841210
+Ref: Igawk Program-Footnote-3841332
+Node: Anagram Program841447
+Node: Signature Program844509
+Node: Programs Summary845756
+Node: Programs Exercises846970
+Ref: Programs Exercises-Footnote-1851100
+Node: Advanced Features851186
+Node: Nondecimal Data853317
+Node: Boolean Typed Values854915
+Node: Array Sorting856796
+Node: Controlling Array Traversal857501
+Ref: Controlling Array Traversal-Footnote-1865869
+Node: Array Sorting Functions865987
+Ref: Array Sorting Functions-Footnote-1871361
+Node: Two-way I/O871557
+Ref: Two-way I/O-Footnote-1879283
+Ref: Two-way I/O-Footnote-2879470
+Node: TCP/IP Networking879552
+Node: Profiling882670
+Node: Extension Philosophy891979
+Node: Advanced Features Summary893458
+Node: Internationalization895473
+Node: I18N and L10N897147
+Node: Explaining gettext897834
+Ref: Explaining gettext-Footnote-1903726
+Ref: Explaining gettext-Footnote-2903911
+Node: Programmer i18n904076
+Ref: Programmer i18n-Footnote-1909025
+Node: Translator i18n909074
+Node: String Extraction909868
+Ref: String Extraction-Footnote-1911000
+Node: Printf Ordering911086
+Ref: Printf Ordering-Footnote-1913872
+Node: I18N Portability913936
+Ref: I18N Portability-Footnote-1916392
+Node: I18N Example916455
+Ref: I18N Example-Footnote-1919730
+Ref: I18N Example-Footnote-2919803
+Node: Gawk I18N919912
+Node: I18N Summary920561
+Node: Debugger921902
+Node: Debugging922902
+Node: Debugging Concepts923343
+Node: Debugging Terms925152
+Node: Awk Debugging927727
+Ref: Awk Debugging-Footnote-1928672
+Node: Sample Debugging Session928804
+Node: Debugger Invocation929338
+Node: Finding The Bug930724
+Node: List of Debugger Commands937198
+Node: Breakpoint Control938531
+Node: Debugger Execution Control942225
+Node: Viewing And Changing Data945587
+Node: Execution Stack949128
+Node: Debugger Info950765
+Node: Miscellaneous Debugger Commands954836
+Node: Readline Support959898
+Node: Limitations960794
+Node: Debugging Summary963348
+Node: Namespaces964627
+Node: Global Namespace965738
+Node: Qualified Names967136
+Node: Default Namespace968135
+Node: Changing The Namespace968876
+Node: Naming Rules970490
+Node: Internal Name Management972338
+Node: Namespace Example973380
+Node: Namespace And Features975942
+Node: Namespace Summary977377
+Node: Arbitrary Precision Arithmetic978854
+Node: Computer Arithmetic980341
+Ref: table-numeric-ranges984107
+Ref: table-floating-point-ranges984600
+Ref: Computer Arithmetic-Footnote-1985258
+Node: Math Definitions985315
+Ref: table-ieee-formats988291
+Node: MPFR features988858
+Node: FP Math Caution990576
+Ref: FP Math Caution-Footnote-1991648
+Node: Inexactness of computations992017
+Node: Inexact representation993048
+Node: Comparing FP Values994408
+Node: Errors accumulate995649
+Node: Strange values997105
+Ref: Strange values-Footnote-1999693
+Node: Getting Accuracy999798
+Node: Try To Round1002508
+Node: Setting precision1003407
+Ref: table-predefined-precision-strings1004104
+Node: Setting the rounding mode1005934
+Ref: table-gawk-rounding-modes1006308
+Ref: Setting the rounding mode-Footnote-11010239
+Node: Arbitrary Precision Integers1010418
+Ref: Arbitrary Precision Integers-Footnote-11013593
+Node: Checking for MPFR1013742
+Node: POSIX Floating Point Problems1015216
+Ref: POSIX Floating Point Problems-Footnote-11019501
+Node: Floating point summary1019539
+Node: Dynamic Extensions1021729
+Node: Extension Intro1023282
+Node: Plugin License1024548
+Node: Extension Mechanism Outline1025345
+Ref: figure-load-extension1025784
+Ref: figure-register-new-function1027349
+Ref: figure-call-new-function1028441
+Node: Extension API Description1030503
+Node: Extension API Functions Introduction1032216
+Ref: table-api-std-headers1034052
+Node: General Data Types1038301
+Ref: General Data Types-Footnote-11047007
+Node: Memory Allocation Functions1047306
+Ref: Memory Allocation Functions-Footnote-11051807
+Node: Constructor Functions1051906
+Node: API Ownership of MPFR and GMP Values1055559
+Node: Registration Functions1056872
+Node: Extension Functions1057572
+Node: Exit Callback Functions1062894
+Node: Extension Version String1064144
+Node: Input Parsers1064807
+Node: Output Wrappers1077528
+Node: Two-way processors1082040
+Node: Printing Messages1084305
+Ref: Printing Messages-Footnote-11085476
+Node: Updating ERRNO1085629
+Node: Requesting Values1086368
+Ref: table-value-types-returned1087105
+Node: Accessing Parameters1088213
+Node: Symbol Table Access1089450
+Node: Symbol table by name1089962
+Ref: Symbol table by name-Footnote-11092986
+Node: Symbol table by cookie1093114
+Ref: Symbol table by cookie-Footnote-11097299
+Node: Cached values1097363
+Ref: Cached values-Footnote-11100899
+Node: Array Manipulation1101052
+Ref: Array Manipulation-Footnote-11102143
+Node: Array Data Types1102180
+Ref: Array Data Types-Footnote-11104838
+Node: Array Functions1104930
+Node: Flattening Arrays1109428
+Node: Creating Arrays1116404
+Node: Redirection API1121171
+Node: Extension API Variables1124004
+Node: Extension Versioning1124715
+Ref: gawk-api-version1125144
+Node: Extension GMP/MPFR Versioning1126875
+Node: Extension API Informational Variables1128503
+Node: Extension API Boilerplate1129576
+Node: Changes from API V11133550
+Node: Finding Extensions1135122
+Node: Extension Example1135681
+Node: Internal File Description1136479
+Node: Internal File Ops1140559
+Ref: Internal File Ops-Footnote-11151909
+Node: Using Internal File Ops1152049
+Ref: Using Internal File Ops-Footnote-11154432
+Node: Extension Samples1154706
+Node: Extension Sample File Functions1156235
+Node: Extension Sample Fnmatch1163884
+Node: Extension Sample Fork1165371
+Node: Extension Sample Inplace1166589
+Node: Extension Sample Ord1170215
+Node: Extension Sample Readdir1171051
+Ref: table-readdir-file-types1171940
+Node: Extension Sample Revout1173007
+Node: Extension Sample Rev2way1173596
+Node: Extension Sample Read write array1174336
+Node: Extension Sample Readfile1176278
+Node: Extension Sample Time1177373
+Node: Extension Sample API Tests1179125
+Node: gawkextlib1179617
+Node: Extension summary1182535
+Node: Extension Exercises1186237
+Node: Language History1187479
+Node: V7/SVR3.11189135
+Node: SVR41191287
+Node: POSIX1192721
+Node: BTL1194102
+Node: POSIX/GNU1194831
+Node: Feature History1200609
+Node: Common Extensions1217784
+Node: Ranges and Locales1219067
+Ref: Ranges and Locales-Footnote-11223683
+Ref: Ranges and Locales-Footnote-21223710
+Ref: Ranges and Locales-Footnote-31223945
+Node: Contributors1224168
+Node: History summary1230165
+Node: Installation1231545
+Node: Gawk Distribution1232489
+Node: Getting1232973
+Node: Extracting1233936
+Node: Distribution contents1235574
+Node: Unix Installation1242054
+Node: Quick Installation1242736
+Node: Compiling with MPFR1245217
+Node: Shell Startup Files1245909
+Node: Additional Configuration Options1246998
+Node: Configuration Philosophy1249313
+Node: Non-Unix Installation1251682
+Node: PC Installation1252142
+Node: PC Binary Installation1252980
+Node: PC Compiling1253415
+Node: PC Using1254532
+Node: Cygwin1258085
+Node: MSYS1259309
+Node: VMS Installation1259911
+Node: VMS Compilation1260630
+Ref: VMS Compilation-Footnote-11261859
+Node: VMS Dynamic Extensions1261917
+Node: VMS Installation Details1263602
+Node: VMS Running1265864
+Node: VMS GNV1270143
+Node: Bugs1270857
+Node: Bug definition1271737
+Node: Bug address1274241
+Node: Usenet1277629
+Node: Performance bugs1278638
+Node: Asking for help1281559
+Node: Maintainers1283521
+Node: Other Versions1284715
+Node: Installation summary1292567
+Node: Notes1293931
+Node: Compatibility Mode1294725
+Node: Additions1295507
+Node: Accessing The Source1296432
+Node: Adding Code1297869
+Node: New Ports1304088
+Node: Derived Files1308463
+Ref: Derived Files-Footnote-11314123
+Ref: Derived Files-Footnote-21314158
+Ref: Derived Files-Footnote-31314756
+Node: Future Extensions1314870
+Node: Implementation Limitations1315528
+Node: Extension Design1316738
+Node: Old Extension Problems1317882
+Ref: Old Extension Problems-Footnote-11319400
+Node: Extension New Mechanism Goals1319457
+Ref: Extension New Mechanism Goals-Footnote-11322821
+Node: Extension Other Design Decisions1323010
+Node: Extension Future Growth1325123
+Node: Notes summary1325729
+Node: Basic Concepts1326887
+Node: Basic High Level1327568
+Ref: figure-general-flow1327850
+Ref: figure-process-flow1328535
+Ref: Basic High Level-Footnote-11331836
+Node: Basic Data Typing1332021
+Node: Glossary1335349
+Node: Copying1367236
+Node: GNU Free Documentation License1404779
+Node: Index1429899

End Tag Table