aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1046
1 files changed, 551 insertions, 495 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 5e6a2c58..21aedf25 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -4136,6 +4136,54 @@ that you can define a variable to be a number or a string:
str = "hi" String variable
re = /foo/ Wrong! re is the result of $0 ~ /foo/
+ For a number of more advanced use cases (described later on in this
+Info file), it would be nice to have regexp constants that are "strongly
+typed"; in other words, that denote a regexp useful for matching, and
+not an expression.
+
+ 'gawk' provides this feature. A strongly typed regexp constant looks
+almost like a regular regexp constant, except that it is preceded by an
+'@' sign:
+
+ re = @/foo/ Regexp variable
+
+ Strongly typed regexp constants _cannot_ be used eveywhere that a
+regular regexp constant can, because this would make the language even
+more confusing. Instead, you may use them only in certain contexts:
+
+ * On the righthand side of the '~' and '!~' operators: 'some_var ~
+ @/foo/' (*note Regexp Usage::).
+
+ * In the 'case' part of a 'switch' statement (*note Switch
+ Statement::).
+
+ * As an argument to one of the built-in functions that accept regexp
+ constants: 'gensub()', 'gsub()', 'match()', 'patsplit()',
+ 'split()', and 'sub()' (*note String Functions::).
+
+ * As a parameter in a call to a user-defined function (*note
+ User-defined::).
+
+ * On the righthand side of an assignment to a variable: 'some_var =
+ @/foo/'. In this case, the type of 'some_var' is regexp.
+ Additionally, 'some_var' can be used with '~' and '!~', passed to
+ one of the built-in functions listed above, or passed as a
+ parameter to a user-defined function.
+
+ You may use the 'typeof()' built-in function (*note Type Functions::)
+to determine if a variable or function parameter is a regexp variable.
+
+ The true power of this feature comes from the ability to create
+variables that have regexp type. Such variables can be passed on to
+user-defined functions, without the confusing aspects of computed
+regular expressions created from strings or string constants. They may
+also be passed through indirect function calls (*note Indirect Calls::)
+onto the built-in functions that accept regexp constants.
+
+ When used in numeric conversions, strongly typed regexp variables
+convert to zero. When used in string conversions, they convert to the
+string value of the original regexp text.
+

File: gawk.info, Node: Regexp Summary, Prev: Strong Regexp Constants, Up: Regexp
@@ -4173,6 +4221,9 @@ File: gawk.info, Node: Regexp Summary, Prev: Strong Regexp Constants, Up: Reg
sensitivity of regexp matching. In other 'awk' versions, use
'tolower()' or 'toupper()'.
+ * Strongly typed regexp constants ('@/.../') enable certain advanced
+ use cases to be described later on in the Info file.
+

File: gawk.info, Node: Reading Files, Next: Printing, Prev: Regexp, Up: Top
@@ -13567,6 +13618,10 @@ contexts.
'"array"'
X is an array.
+ '"regexp"'
+ X is a strongly typed regexp (*note Strong Regexp
+ Constants::).
+
'"number"'
X is a number.
@@ -13613,7 +13668,8 @@ parameter is an array or not.
turning it into a scalar.
The 'typeof()' function is general; it allows you to determine if a
-variable or function parameter is a scalar, an array.
+variable or function parameter is a scalar, an array, or a strongly
+typed regexp.
'isarray()' is deprecated; you should use 'typeof()' instead. You
should replace any existing uses of 'isarray(var)' in your code with
@@ -35347,499 +35403,499 @@ Node: Case-sensitivity185993
Ref: Case-sensitivity-Footnote-1188889
Ref: Case-sensitivity-Footnote-2189124
Node: Strong Regexp Constants189232
-Node: Regexp Summary190021
-Node: Reading Files191496
-Node: Records193659
-Node: awk split records194392
-Node: gawk split records199323
-Ref: gawk split records-Footnote-1203863
-Node: Fields203900
-Node: Nonconstant Fields206641
-Ref: Nonconstant Fields-Footnote-1208877
-Node: Changing Fields209081
-Node: Field Separators215009
-Node: Default Field Splitting217707
-Node: Regexp Field Splitting218825
-Node: Single Character Fields222178
-Node: Command Line Field Separator223238
-Node: Full Line Fields226456
-Ref: Full Line Fields-Footnote-1227978
-Ref: Full Line Fields-Footnote-2228024
-Node: Field Splitting Summary228125
-Node: Constant Size230199
-Node: Splitting By Content234777
-Ref: Splitting By Content-Footnote-1238748
-Node: Multiple Line238911
-Ref: Multiple Line-Footnote-1244793
-Node: Getline244972
-Node: Plain Getline247439
-Node: Getline/Variable250078
-Node: Getline/File251227
-Node: Getline/Variable/File252613
-Ref: Getline/Variable/File-Footnote-1254216
-Node: Getline/Pipe254304
-Node: Getline/Variable/Pipe257009
-Node: Getline/Coprocess258142
-Node: Getline/Variable/Coprocess259407
-Node: Getline Notes260147
-Node: Getline Summary262942
-Ref: table-getline-variants263364
-Node: Read Timeout264112
-Ref: Read Timeout-Footnote-1268018
-Node: Retrying Input268076
-Node: Command-line directories269275
-Node: Input Summary270181
-Node: Input Exercises273353
-Node: Printing274081
-Node: Print275915
-Node: Print Examples277372
-Node: Output Separators280152
-Node: OFMT282169
-Node: Printf283525
-Node: Basic Printf284310
-Node: Control Letters285884
-Node: Format Modifiers289872
-Node: Printf Examples295887
-Node: Redirection298373
-Node: Special FD305214
-Ref: Special FD-Footnote-1308382
-Node: Special Files308456
-Node: Other Inherited Files309073
-Node: Special Network310074
-Node: Special Caveats310934
-Node: Close Files And Pipes311883
-Ref: table-close-pipe-return-values318790
-Ref: Close Files And Pipes-Footnote-1319573
-Ref: Close Files And Pipes-Footnote-2319721
-Node: Nonfatal319873
-Node: Output Summary322198
-Node: Output Exercises323420
-Node: Expressions324099
-Node: Values325287
-Node: Constants325965
-Node: Scalar Constants326656
-Ref: Scalar Constants-Footnote-1327520
-Node: Nondecimal-numbers327770
-Node: Regexp Constants330783
-Node: Using Constant Regexps331309
-Node: Variables334472
-Node: Using Variables335129
-Node: Assignment Options337039
-Node: Conversion338912
-Node: Strings And Numbers339436
-Ref: Strings And Numbers-Footnote-1342499
-Node: Locale influences conversions342608
-Ref: table-locale-affects345366
-Node: All Operators345984
-Node: Arithmetic Ops346613
-Node: Concatenation349119
-Ref: Concatenation-Footnote-1351966
-Node: Assignment Ops352073
-Ref: table-assign-ops357064
-Node: Increment Ops358377
-Node: Truth Values and Conditions361837
-Node: Truth Values362911
-Node: Typing and Comparison363959
-Node: Variable Typing364779
-Node: Comparison Operators368403
-Ref: table-relational-ops368822
-Node: POSIX String Comparison372317
-Ref: POSIX String Comparison-Footnote-1374012
-Ref: POSIX String Comparison-Footnote-2374151
-Node: Boolean Ops374235
-Ref: Boolean Ops-Footnote-1378717
-Node: Conditional Exp378809
-Node: Function Calls380545
-Node: Precedence384422
-Node: Locales388081
-Node: Expressions Summary389713
-Node: Patterns and Actions392286
-Node: Pattern Overview393406
-Node: Regexp Patterns395083
-Node: Expression Patterns395625
-Node: Ranges399406
-Node: BEGIN/END402514
-Node: Using BEGIN/END403275
-Ref: Using BEGIN/END-Footnote-1406011
-Node: I/O And BEGIN/END406117
-Node: BEGINFILE/ENDFILE408431
-Node: Empty411338
-Node: Using Shell Variables411655
-Node: Action Overview413929
-Node: Statements416254
-Node: If Statement418102
-Node: While Statement419597
-Node: Do Statement421625
-Node: For Statement422773
-Node: Switch Statement425931
-Node: Break Statement428317
-Node: Continue Statement430409
-Node: Next Statement432236
-Node: Nextfile Statement434619
-Node: Exit Statement437271
-Node: Built-in Variables439674
-Node: User-modified440807
-Node: Auto-set448393
-Ref: Auto-set-Footnote-1463046
-Ref: Auto-set-Footnote-2463252
-Node: ARGC and ARGV463308
-Node: Pattern Action Summary467521
-Node: Arrays469951
-Node: Array Basics471280
-Node: Array Intro472124
-Ref: figure-array-elements474099
-Ref: Array Intro-Footnote-1476803
-Node: Reference to Elements476931
-Node: Assigning Elements479395
-Node: Array Example479886
-Node: Scanning an Array481645
-Node: Controlling Scanning484667
-Ref: Controlling Scanning-Footnote-1490066
-Node: Numeric Array Subscripts490382
-Node: Uninitialized Subscripts492566
-Node: Delete494185
-Ref: Delete-Footnote-1496937
-Node: Multidimensional496994
-Node: Multiscanning500089
-Node: Arrays of Arrays501680
-Node: Arrays Summary506447
-Node: Functions508540
-Node: Built-in509578
-Node: Calling Built-in510659
-Node: Numeric Functions512655
-Ref: Numeric Functions-Footnote-1517488
-Ref: Numeric Functions-Footnote-2517845
-Ref: Numeric Functions-Footnote-3517893
-Node: String Functions518165
-Ref: String Functions-Footnote-1541669
-Ref: String Functions-Footnote-2541797
-Ref: String Functions-Footnote-3542045
-Node: Gory Details542132
-Ref: table-sub-escapes543923
-Ref: table-sub-proposed545442
-Ref: table-posix-sub546805
-Ref: table-gensub-escapes548346
-Ref: Gory Details-Footnote-1549169
-Node: I/O Functions549323
-Ref: table-system-return-values555905
-Ref: I/O Functions-Footnote-1557885
-Ref: I/O Functions-Footnote-2558033
-Node: Time Functions558153
-Ref: Time Functions-Footnote-1568675
-Ref: Time Functions-Footnote-2568743
-Ref: Time Functions-Footnote-3568901
-Ref: Time Functions-Footnote-4569012
-Ref: Time Functions-Footnote-5569124
-Ref: Time Functions-Footnote-6569351
-Node: Bitwise Functions569617
-Ref: table-bitwise-ops570211
-Ref: Bitwise Functions-Footnote-1574549
-Node: Type Functions574722
-Node: I18N Functions577254
-Node: User-defined578905
-Node: Definition Syntax579710
-Ref: Definition Syntax-Footnote-1585397
-Node: Function Example585468
-Ref: Function Example-Footnote-1588390
-Node: Function Caveats588412
-Node: Calling A Function588930
-Node: Variable Scope589888
-Node: Pass By Value/Reference592882
-Node: Return Statement596381
-Node: Dynamic Typing599360
-Node: Indirect Calls600290
-Ref: Indirect Calls-Footnote-1610541
-Node: Functions Summary610669
-Node: Library Functions613374
-Ref: Library Functions-Footnote-1616981
-Ref: Library Functions-Footnote-2617124
-Node: Library Names617295
-Ref: Library Names-Footnote-1620755
-Ref: Library Names-Footnote-2620978
-Node: General Functions621064
-Node: Strtonum Function622167
-Node: Assert Function625189
-Node: Round Function628515
-Node: Cliff Random Function630056
-Node: Ordinal Functions631072
-Ref: Ordinal Functions-Footnote-1634135
-Ref: Ordinal Functions-Footnote-2634387
-Node: Join Function634597
-Ref: Join Function-Footnote-1636367
-Node: Getlocaltime Function636567
-Node: Readfile Function640309
-Node: Shell Quoting642281
-Node: Data File Management643682
-Node: Filetrans Function644314
-Node: Rewind Function648410
-Node: File Checking650316
-Ref: File Checking-Footnote-1651650
-Node: Empty Files651851
-Node: Ignoring Assigns653830
-Node: Getopt Function655380
-Ref: Getopt Function-Footnote-1666849
-Node: Passwd Functions667049
-Ref: Passwd Functions-Footnote-1675888
-Node: Group Functions675976
-Ref: Group Functions-Footnote-1683874
-Node: Walking Arrays684081
-Node: Library Functions Summary687089
-Node: Library Exercises688495
-Node: Sample Programs688960
-Node: Running Examples689730
-Node: Clones690458
-Node: Cut Program691682
-Node: Egrep Program701611
-Ref: Egrep Program-Footnote-1709123
-Node: Id Program709233
-Node: Split Program712913
-Ref: Split Program-Footnote-1716372
-Node: Tee Program716501
-Node: Uniq Program719291
-Node: Wc Program726717
-Ref: Wc Program-Footnote-1730972
-Node: Miscellaneous Programs731066
-Node: Dupword Program732279
-Node: Alarm Program734309
-Node: Translate Program739164
-Ref: Translate Program-Footnote-1743729
-Node: Labels Program743999
-Ref: Labels Program-Footnote-1747350
-Node: Word Sorting747434
-Node: History Sorting751506
-Node: Extract Program753341
-Node: Simple Sed760870
-Node: Igawk Program763944
-Ref: Igawk Program-Footnote-1778275
-Ref: Igawk Program-Footnote-2778477
-Ref: Igawk Program-Footnote-3778599
-Node: Anagram Program778714
-Node: Signature Program781776
-Node: Programs Summary783023
-Node: Programs Exercises784237
-Ref: Programs Exercises-Footnote-1788366
-Node: Advanced Features788457
-Node: Nondecimal Data790447
-Node: Array Sorting792038
-Node: Controlling Array Traversal792738
-Ref: Controlling Array Traversal-Footnote-1801105
-Node: Array Sorting Functions801223
-Ref: Array Sorting Functions-Footnote-1806314
-Node: Two-way I/O806510
-Ref: Two-way I/O-Footnote-1813060
-Ref: Two-way I/O-Footnote-2813247
-Node: TCP/IP Networking813329
-Node: Profiling816447
-Ref: Profiling-Footnote-1824940
-Node: Advanced Features Summary825263
-Node: Internationalization827107
-Node: I18N and L10N828587
-Node: Explaining gettext829274
-Ref: Explaining gettext-Footnote-1835166
-Ref: Explaining gettext-Footnote-2835351
-Node: Programmer i18n835516
-Ref: Programmer i18n-Footnote-1840371
-Node: Translator i18n840420
-Node: String Extraction841214
-Ref: String Extraction-Footnote-1842346
-Node: Printf Ordering842432
-Ref: Printf Ordering-Footnote-1845218
-Node: I18N Portability845282
-Ref: I18N Portability-Footnote-1847738
-Node: I18N Example847801
-Ref: I18N Example-Footnote-1850607
-Node: Gawk I18N850680
-Node: I18N Summary851325
-Node: Debugger852666
-Node: Debugging853688
-Node: Debugging Concepts854129
-Node: Debugging Terms855938
-Node: Awk Debugging858513
-Node: Sample Debugging Session859419
-Node: Debugger Invocation859953
-Node: Finding The Bug861339
-Node: List of Debugger Commands867817
-Node: Breakpoint Control869150
-Node: Debugger Execution Control872844
-Node: Viewing And Changing Data876206
-Node: Execution Stack879580
-Node: Debugger Info881217
-Node: Miscellaneous Debugger Commands885288
-Node: Readline Support890376
-Node: Limitations891272
-Ref: Limitations-Footnote-1895503
-Node: Debugging Summary895554
-Node: Arbitrary Precision Arithmetic896833
-Node: Computer Arithmetic898249
-Ref: table-numeric-ranges901840
-Ref: Computer Arithmetic-Footnote-1902562
-Node: Math Definitions902619
-Ref: table-ieee-formats905933
-Ref: Math Definitions-Footnote-1906536
-Node: MPFR features906641
-Node: FP Math Caution908358
-Ref: FP Math Caution-Footnote-1909430
-Node: Inexactness of computations909799
-Node: Inexact representation910759
-Node: Comparing FP Values912119
-Node: Errors accumulate913201
-Node: Getting Accuracy914634
-Node: Try To Round917344
-Node: Setting precision918243
-Ref: table-predefined-precision-strings918940
-Node: Setting the rounding mode920770
-Ref: table-gawk-rounding-modes921144
-Ref: Setting the rounding mode-Footnote-1924552
-Node: Arbitrary Precision Integers924731
-Ref: Arbitrary Precision Integers-Footnote-1929648
-Node: POSIX Floating Point Problems929797
-Ref: POSIX Floating Point Problems-Footnote-1933679
-Node: Floating point summary933717
-Node: Dynamic Extensions935907
-Node: Extension Intro937460
-Node: Plugin License938726
-Node: Extension Mechanism Outline939523
-Ref: figure-load-extension939962
-Ref: figure-register-new-function941527
-Ref: figure-call-new-function942619
-Node: Extension API Description944681
-Node: Extension API Functions Introduction946213
-Node: General Data Types951072
-Ref: General Data Types-Footnote-1957027
-Node: Memory Allocation Functions957326
-Ref: Memory Allocation Functions-Footnote-1960171
-Node: Constructor Functions960270
-Node: Registration Functions962015
-Node: Extension Functions962700
-Node: Exit Callback Functions965323
-Node: Extension Version String966573
-Node: Input Parsers967236
-Node: Output Wrappers977118
-Node: Two-way processors981630
-Node: Printing Messages983895
-Ref: Printing Messages-Footnote-1985066
-Node: Updating ERRNO985219
-Node: Requesting Values985958
-Ref: table-value-types-returned986695
-Node: Accessing Parameters987578
-Node: Symbol Table Access988813
-Node: Symbol table by name989325
-Node: Symbol table by cookie991346
-Ref: Symbol table by cookie-Footnote-1995498
-Node: Cached values995562
-Ref: Cached values-Footnote-1999069
-Node: Array Manipulation999160
-Ref: Array Manipulation-Footnote-11000251
-Node: Array Data Types1000288
-Ref: Array Data Types-Footnote-11002946
-Node: Array Functions1003038
-Node: Flattening Arrays1006896
-Node: Creating Arrays1013804
-Node: Redirection API1018573
-Node: Extension API Variables1021404
-Node: Extension Versioning1022037
-Ref: gawk-api-version1022474
-Node: Extension API Informational Variables1024230
-Node: Extension API Boilerplate1025294
-Node: Finding Extensions1029108
-Node: Extension Example1029667
-Node: Internal File Description1030465
-Node: Internal File Ops1034545
-Ref: Internal File Ops-Footnote-11046307
-Node: Using Internal File Ops1046447
-Ref: Using Internal File Ops-Footnote-11048830
-Node: Extension Samples1049104
-Node: Extension Sample File Functions1050633
-Node: Extension Sample Fnmatch1058282
-Node: Extension Sample Fork1059769
-Node: Extension Sample Inplace1060987
-Node: Extension Sample Ord1064197
-Node: Extension Sample Readdir1065033
-Ref: table-readdir-file-types1065922
-Node: Extension Sample Revout1066727
-Node: Extension Sample Rev2way1067316
-Node: Extension Sample Read write array1068056
-Node: Extension Sample Readfile1069998
-Node: Extension Sample Time1071093
-Node: Extension Sample API Tests1072441
-Node: gawkextlib1072933
-Node: Extension summary1075380
-Node: Extension Exercises1079082
-Node: Language History1080580
-Node: V7/SVR3.11082236
-Node: SVR41084388
-Node: POSIX1085822
-Node: BTL1087201
-Node: POSIX/GNU1087930
-Node: Feature History1093792
-Node: Common Extensions1108162
-Node: Ranges and Locales1109445
-Ref: Ranges and Locales-Footnote-11114061
-Ref: Ranges and Locales-Footnote-21114088
-Ref: Ranges and Locales-Footnote-31114323
-Node: Contributors1114544
-Node: History summary1120104
-Node: Installation1121484
-Node: Gawk Distribution1122428
-Node: Getting1122912
-Node: Extracting1123873
-Node: Distribution contents1125511
-Node: Unix Installation1131605
-Node: Quick Installation1132287
-Node: Shell Startup Files1134701
-Node: Additional Configuration Options1135779
-Node: Configuration Philosophy1137584
-Node: Non-Unix Installation1139953
-Node: PC Installation1140411
-Node: PC Binary Installation1141731
-Node: PC Compiling1143583
-Ref: PC Compiling-Footnote-11146377
-Node: PC Testing1146486
-Node: PC Using1147666
-Ref: PC Using-Footnote-11151819
-Node: Cygwin1151892
-Node: MSYS1152662
-Node: VMS Installation1153163
-Node: VMS Compilation1153954
-Ref: VMS Compilation-Footnote-11155183
-Node: VMS Dynamic Extensions1155241
-Node: VMS Installation Details1156926
-Node: VMS Running1159179
-Node: VMS GNV1163458
-Node: VMS Old Gawk1164193
-Node: Bugs1164664
-Node: Other Versions1168979
-Node: Installation summary1175563
-Node: Notes1176614
-Node: Compatibility Mode1177479
-Node: Additions1178261
-Node: Accessing The Source1179186
-Node: Adding Code1180621
-Node: New Ports1186840
-Node: Derived Files1191328
-Ref: Derived Files-Footnote-11196813
-Ref: Derived Files-Footnote-21196848
-Ref: Derived Files-Footnote-31197446
-Node: Future Extensions1197560
-Node: Implementation Limitations1198218
-Node: Extension Design1199401
-Node: Old Extension Problems1200555
-Ref: Old Extension Problems-Footnote-11202073
-Node: Extension New Mechanism Goals1202130
-Ref: Extension New Mechanism Goals-Footnote-11205494
-Node: Extension Other Design Decisions1205683
-Node: Extension Future Growth1207796
-Node: Old Extension Mechanism1208632
-Node: Notes summary1210395
-Node: Basic Concepts1211577
-Node: Basic High Level1212258
-Ref: figure-general-flow1212540
-Ref: figure-process-flow1213225
-Ref: Basic High Level-Footnote-11216526
-Node: Basic Data Typing1216711
-Node: Glossary1220039
-Node: Copying1251986
-Node: GNU Free Documentation License1289525
-Node: Index1314643
+Node: Regexp Summary192174
+Node: Reading Files193780
+Node: Records195943
+Node: awk split records196676
+Node: gawk split records201607
+Ref: gawk split records-Footnote-1206147
+Node: Fields206184
+Node: Nonconstant Fields208925
+Ref: Nonconstant Fields-Footnote-1211161
+Node: Changing Fields211365
+Node: Field Separators217293
+Node: Default Field Splitting219991
+Node: Regexp Field Splitting221109
+Node: Single Character Fields224462
+Node: Command Line Field Separator225522
+Node: Full Line Fields228740
+Ref: Full Line Fields-Footnote-1230262
+Ref: Full Line Fields-Footnote-2230308
+Node: Field Splitting Summary230409
+Node: Constant Size232483
+Node: Splitting By Content237061
+Ref: Splitting By Content-Footnote-1241032
+Node: Multiple Line241195
+Ref: Multiple Line-Footnote-1247077
+Node: Getline247256
+Node: Plain Getline249723
+Node: Getline/Variable252362
+Node: Getline/File253511
+Node: Getline/Variable/File254897
+Ref: Getline/Variable/File-Footnote-1256500
+Node: Getline/Pipe256588
+Node: Getline/Variable/Pipe259293
+Node: Getline/Coprocess260426
+Node: Getline/Variable/Coprocess261691
+Node: Getline Notes262431
+Node: Getline Summary265226
+Ref: table-getline-variants265648
+Node: Read Timeout266396
+Ref: Read Timeout-Footnote-1270302
+Node: Retrying Input270360
+Node: Command-line directories271559
+Node: Input Summary272465
+Node: Input Exercises275637
+Node: Printing276365
+Node: Print278199
+Node: Print Examples279656
+Node: Output Separators282436
+Node: OFMT284453
+Node: Printf285809
+Node: Basic Printf286594
+Node: Control Letters288168
+Node: Format Modifiers292156
+Node: Printf Examples298171
+Node: Redirection300657
+Node: Special FD307498
+Ref: Special FD-Footnote-1310666
+Node: Special Files310740
+Node: Other Inherited Files311357
+Node: Special Network312358
+Node: Special Caveats313218
+Node: Close Files And Pipes314167
+Ref: table-close-pipe-return-values321074
+Ref: Close Files And Pipes-Footnote-1321857
+Ref: Close Files And Pipes-Footnote-2322005
+Node: Nonfatal322157
+Node: Output Summary324482
+Node: Output Exercises325704
+Node: Expressions326383
+Node: Values327571
+Node: Constants328249
+Node: Scalar Constants328940
+Ref: Scalar Constants-Footnote-1329804
+Node: Nondecimal-numbers330054
+Node: Regexp Constants333067
+Node: Using Constant Regexps333593
+Node: Variables336756
+Node: Using Variables337413
+Node: Assignment Options339323
+Node: Conversion341196
+Node: Strings And Numbers341720
+Ref: Strings And Numbers-Footnote-1344783
+Node: Locale influences conversions344892
+Ref: table-locale-affects347650
+Node: All Operators348268
+Node: Arithmetic Ops348897
+Node: Concatenation351403
+Ref: Concatenation-Footnote-1354250
+Node: Assignment Ops354357
+Ref: table-assign-ops359348
+Node: Increment Ops360661
+Node: Truth Values and Conditions364121
+Node: Truth Values365195
+Node: Typing and Comparison366243
+Node: Variable Typing367063
+Node: Comparison Operators370687
+Ref: table-relational-ops371106
+Node: POSIX String Comparison374601
+Ref: POSIX String Comparison-Footnote-1376296
+Ref: POSIX String Comparison-Footnote-2376435
+Node: Boolean Ops376519
+Ref: Boolean Ops-Footnote-1381001
+Node: Conditional Exp381093
+Node: Function Calls382829
+Node: Precedence386706
+Node: Locales390365
+Node: Expressions Summary391997
+Node: Patterns and Actions394570
+Node: Pattern Overview395690
+Node: Regexp Patterns397367
+Node: Expression Patterns397909
+Node: Ranges401690
+Node: BEGIN/END404798
+Node: Using BEGIN/END405559
+Ref: Using BEGIN/END-Footnote-1408295
+Node: I/O And BEGIN/END408401
+Node: BEGINFILE/ENDFILE410715
+Node: Empty413622
+Node: Using Shell Variables413939
+Node: Action Overview416213
+Node: Statements418538
+Node: If Statement420386
+Node: While Statement421881
+Node: Do Statement423909
+Node: For Statement425057
+Node: Switch Statement428215
+Node: Break Statement430601
+Node: Continue Statement432693
+Node: Next Statement434520
+Node: Nextfile Statement436903
+Node: Exit Statement439555
+Node: Built-in Variables441958
+Node: User-modified443091
+Node: Auto-set450677
+Ref: Auto-set-Footnote-1465330
+Ref: Auto-set-Footnote-2465536
+Node: ARGC and ARGV465592
+Node: Pattern Action Summary469805
+Node: Arrays472235
+Node: Array Basics473564
+Node: Array Intro474408
+Ref: figure-array-elements476383
+Ref: Array Intro-Footnote-1479087
+Node: Reference to Elements479215
+Node: Assigning Elements481679
+Node: Array Example482170
+Node: Scanning an Array483929
+Node: Controlling Scanning486951
+Ref: Controlling Scanning-Footnote-1492350
+Node: Numeric Array Subscripts492666
+Node: Uninitialized Subscripts494850
+Node: Delete496469
+Ref: Delete-Footnote-1499221
+Node: Multidimensional499278
+Node: Multiscanning502373
+Node: Arrays of Arrays503964
+Node: Arrays Summary508731
+Node: Functions510824
+Node: Built-in511862
+Node: Calling Built-in512943
+Node: Numeric Functions514939
+Ref: Numeric Functions-Footnote-1519772
+Ref: Numeric Functions-Footnote-2520129
+Ref: Numeric Functions-Footnote-3520177
+Node: String Functions520449
+Ref: String Functions-Footnote-1543953
+Ref: String Functions-Footnote-2544081
+Ref: String Functions-Footnote-3544329
+Node: Gory Details544416
+Ref: table-sub-escapes546207
+Ref: table-sub-proposed547726
+Ref: table-posix-sub549089
+Ref: table-gensub-escapes550630
+Ref: Gory Details-Footnote-1551453
+Node: I/O Functions551607
+Ref: table-system-return-values558189
+Ref: I/O Functions-Footnote-1560169
+Ref: I/O Functions-Footnote-2560317
+Node: Time Functions560437
+Ref: Time Functions-Footnote-1570959
+Ref: Time Functions-Footnote-2571027
+Ref: Time Functions-Footnote-3571185
+Ref: Time Functions-Footnote-4571296
+Ref: Time Functions-Footnote-5571408
+Ref: Time Functions-Footnote-6571635
+Node: Bitwise Functions571901
+Ref: table-bitwise-ops572495
+Ref: Bitwise Functions-Footnote-1576833
+Node: Type Functions577006
+Node: I18N Functions579667
+Node: User-defined581318
+Node: Definition Syntax582123
+Ref: Definition Syntax-Footnote-1587810
+Node: Function Example587881
+Ref: Function Example-Footnote-1590803
+Node: Function Caveats590825
+Node: Calling A Function591343
+Node: Variable Scope592301
+Node: Pass By Value/Reference595295
+Node: Return Statement598794
+Node: Dynamic Typing601773
+Node: Indirect Calls602703
+Ref: Indirect Calls-Footnote-1612954
+Node: Functions Summary613082
+Node: Library Functions615787
+Ref: Library Functions-Footnote-1619394
+Ref: Library Functions-Footnote-2619537
+Node: Library Names619708
+Ref: Library Names-Footnote-1623168
+Ref: Library Names-Footnote-2623391
+Node: General Functions623477
+Node: Strtonum Function624580
+Node: Assert Function627602
+Node: Round Function630928
+Node: Cliff Random Function632469
+Node: Ordinal Functions633485
+Ref: Ordinal Functions-Footnote-1636548
+Ref: Ordinal Functions-Footnote-2636800
+Node: Join Function637010
+Ref: Join Function-Footnote-1638780
+Node: Getlocaltime Function638980
+Node: Readfile Function642722
+Node: Shell Quoting644694
+Node: Data File Management646095
+Node: Filetrans Function646727
+Node: Rewind Function650823
+Node: File Checking652729
+Ref: File Checking-Footnote-1654063
+Node: Empty Files654264
+Node: Ignoring Assigns656243
+Node: Getopt Function657793
+Ref: Getopt Function-Footnote-1669262
+Node: Passwd Functions669462
+Ref: Passwd Functions-Footnote-1678301
+Node: Group Functions678389
+Ref: Group Functions-Footnote-1686287
+Node: Walking Arrays686494
+Node: Library Functions Summary689502
+Node: Library Exercises690908
+Node: Sample Programs691373
+Node: Running Examples692143
+Node: Clones692871
+Node: Cut Program694095
+Node: Egrep Program704024
+Ref: Egrep Program-Footnote-1711536
+Node: Id Program711646
+Node: Split Program715326
+Ref: Split Program-Footnote-1718785
+Node: Tee Program718914
+Node: Uniq Program721704
+Node: Wc Program729130
+Ref: Wc Program-Footnote-1733385
+Node: Miscellaneous Programs733479
+Node: Dupword Program734692
+Node: Alarm Program736722
+Node: Translate Program741577
+Ref: Translate Program-Footnote-1746142
+Node: Labels Program746412
+Ref: Labels Program-Footnote-1749763
+Node: Word Sorting749847
+Node: History Sorting753919
+Node: Extract Program755754
+Node: Simple Sed763283
+Node: Igawk Program766357
+Ref: Igawk Program-Footnote-1780688
+Ref: Igawk Program-Footnote-2780890
+Ref: Igawk Program-Footnote-3781012
+Node: Anagram Program781127
+Node: Signature Program784189
+Node: Programs Summary785436
+Node: Programs Exercises786650
+Ref: Programs Exercises-Footnote-1790779
+Node: Advanced Features790870
+Node: Nondecimal Data792860
+Node: Array Sorting794451
+Node: Controlling Array Traversal795151
+Ref: Controlling Array Traversal-Footnote-1803518
+Node: Array Sorting Functions803636
+Ref: Array Sorting Functions-Footnote-1808727
+Node: Two-way I/O808923
+Ref: Two-way I/O-Footnote-1815473
+Ref: Two-way I/O-Footnote-2815660
+Node: TCP/IP Networking815742
+Node: Profiling818860
+Ref: Profiling-Footnote-1827353
+Node: Advanced Features Summary827676
+Node: Internationalization829520
+Node: I18N and L10N831000
+Node: Explaining gettext831687
+Ref: Explaining gettext-Footnote-1837579
+Ref: Explaining gettext-Footnote-2837764
+Node: Programmer i18n837929
+Ref: Programmer i18n-Footnote-1842784
+Node: Translator i18n842833
+Node: String Extraction843627
+Ref: String Extraction-Footnote-1844759
+Node: Printf Ordering844845
+Ref: Printf Ordering-Footnote-1847631
+Node: I18N Portability847695
+Ref: I18N Portability-Footnote-1850151
+Node: I18N Example850214
+Ref: I18N Example-Footnote-1853020
+Node: Gawk I18N853093
+Node: I18N Summary853738
+Node: Debugger855079
+Node: Debugging856101
+Node: Debugging Concepts856542
+Node: Debugging Terms858351
+Node: Awk Debugging860926
+Node: Sample Debugging Session861832
+Node: Debugger Invocation862366
+Node: Finding The Bug863752
+Node: List of Debugger Commands870230
+Node: Breakpoint Control871563
+Node: Debugger Execution Control875257
+Node: Viewing And Changing Data878619
+Node: Execution Stack881993
+Node: Debugger Info883630
+Node: Miscellaneous Debugger Commands887701
+Node: Readline Support892789
+Node: Limitations893685
+Ref: Limitations-Footnote-1897916
+Node: Debugging Summary897967
+Node: Arbitrary Precision Arithmetic899246
+Node: Computer Arithmetic900662
+Ref: table-numeric-ranges904253
+Ref: Computer Arithmetic-Footnote-1904975
+Node: Math Definitions905032
+Ref: table-ieee-formats908346
+Ref: Math Definitions-Footnote-1908949
+Node: MPFR features909054
+Node: FP Math Caution910771
+Ref: FP Math Caution-Footnote-1911843
+Node: Inexactness of computations912212
+Node: Inexact representation913172
+Node: Comparing FP Values914532
+Node: Errors accumulate915614
+Node: Getting Accuracy917047
+Node: Try To Round919757
+Node: Setting precision920656
+Ref: table-predefined-precision-strings921353
+Node: Setting the rounding mode923183
+Ref: table-gawk-rounding-modes923557
+Ref: Setting the rounding mode-Footnote-1926965
+Node: Arbitrary Precision Integers927144
+Ref: Arbitrary Precision Integers-Footnote-1932061
+Node: POSIX Floating Point Problems932210
+Ref: POSIX Floating Point Problems-Footnote-1936092
+Node: Floating point summary936130
+Node: Dynamic Extensions938320
+Node: Extension Intro939873
+Node: Plugin License941139
+Node: Extension Mechanism Outline941936
+Ref: figure-load-extension942375
+Ref: figure-register-new-function943940
+Ref: figure-call-new-function945032
+Node: Extension API Description947094
+Node: Extension API Functions Introduction948626
+Node: General Data Types953485
+Ref: General Data Types-Footnote-1959440
+Node: Memory Allocation Functions959739
+Ref: Memory Allocation Functions-Footnote-1962584
+Node: Constructor Functions962683
+Node: Registration Functions964428
+Node: Extension Functions965113
+Node: Exit Callback Functions967736
+Node: Extension Version String968986
+Node: Input Parsers969649
+Node: Output Wrappers979531
+Node: Two-way processors984043
+Node: Printing Messages986308
+Ref: Printing Messages-Footnote-1987479
+Node: Updating ERRNO987632
+Node: Requesting Values988371
+Ref: table-value-types-returned989108
+Node: Accessing Parameters989991
+Node: Symbol Table Access991226
+Node: Symbol table by name991738
+Node: Symbol table by cookie993759
+Ref: Symbol table by cookie-Footnote-1997911
+Node: Cached values997975
+Ref: Cached values-Footnote-11001482
+Node: Array Manipulation1001573
+Ref: Array Manipulation-Footnote-11002664
+Node: Array Data Types1002701
+Ref: Array Data Types-Footnote-11005359
+Node: Array Functions1005451
+Node: Flattening Arrays1009309
+Node: Creating Arrays1016217
+Node: Redirection API1020986
+Node: Extension API Variables1023817
+Node: Extension Versioning1024450
+Ref: gawk-api-version1024887
+Node: Extension API Informational Variables1026643
+Node: Extension API Boilerplate1027707
+Node: Finding Extensions1031521
+Node: Extension Example1032080
+Node: Internal File Description1032878
+Node: Internal File Ops1036958
+Ref: Internal File Ops-Footnote-11048720
+Node: Using Internal File Ops1048860
+Ref: Using Internal File Ops-Footnote-11051243
+Node: Extension Samples1051517
+Node: Extension Sample File Functions1053046
+Node: Extension Sample Fnmatch1060695
+Node: Extension Sample Fork1062182
+Node: Extension Sample Inplace1063400
+Node: Extension Sample Ord1066610
+Node: Extension Sample Readdir1067446
+Ref: table-readdir-file-types1068335
+Node: Extension Sample Revout1069140
+Node: Extension Sample Rev2way1069729
+Node: Extension Sample Read write array1070469
+Node: Extension Sample Readfile1072411
+Node: Extension Sample Time1073506
+Node: Extension Sample API Tests1074854
+Node: gawkextlib1075346
+Node: Extension summary1077793
+Node: Extension Exercises1081495
+Node: Language History1082993
+Node: V7/SVR3.11084649
+Node: SVR41086801
+Node: POSIX1088235
+Node: BTL1089614
+Node: POSIX/GNU1090343
+Node: Feature History1096205
+Node: Common Extensions1110575
+Node: Ranges and Locales1111858
+Ref: Ranges and Locales-Footnote-11116474
+Ref: Ranges and Locales-Footnote-21116501
+Ref: Ranges and Locales-Footnote-31116736
+Node: Contributors1116957
+Node: History summary1122517
+Node: Installation1123897
+Node: Gawk Distribution1124841
+Node: Getting1125325
+Node: Extracting1126286
+Node: Distribution contents1127924
+Node: Unix Installation1134018
+Node: Quick Installation1134700
+Node: Shell Startup Files1137114
+Node: Additional Configuration Options1138192
+Node: Configuration Philosophy1139997
+Node: Non-Unix Installation1142366
+Node: PC Installation1142824
+Node: PC Binary Installation1144144
+Node: PC Compiling1145996
+Ref: PC Compiling-Footnote-11148790
+Node: PC Testing1148899
+Node: PC Using1150079
+Ref: PC Using-Footnote-11154232
+Node: Cygwin1154305
+Node: MSYS1155075
+Node: VMS Installation1155576
+Node: VMS Compilation1156367
+Ref: VMS Compilation-Footnote-11157596
+Node: VMS Dynamic Extensions1157654
+Node: VMS Installation Details1159339
+Node: VMS Running1161592
+Node: VMS GNV1165871
+Node: VMS Old Gawk1166606
+Node: Bugs1167077
+Node: Other Versions1171392
+Node: Installation summary1177976
+Node: Notes1179027
+Node: Compatibility Mode1179892
+Node: Additions1180674
+Node: Accessing The Source1181599
+Node: Adding Code1183034
+Node: New Ports1189253
+Node: Derived Files1193741
+Ref: Derived Files-Footnote-11199226
+Ref: Derived Files-Footnote-21199261
+Ref: Derived Files-Footnote-31199859
+Node: Future Extensions1199973
+Node: Implementation Limitations1200631
+Node: Extension Design1201814
+Node: Old Extension Problems1202968
+Ref: Old Extension Problems-Footnote-11204486
+Node: Extension New Mechanism Goals1204543
+Ref: Extension New Mechanism Goals-Footnote-11207907
+Node: Extension Other Design Decisions1208096
+Node: Extension Future Growth1210209
+Node: Old Extension Mechanism1211045
+Node: Notes summary1212808
+Node: Basic Concepts1213990
+Node: Basic High Level1214671
+Ref: figure-general-flow1214953
+Ref: figure-process-flow1215638
+Ref: Basic High Level-Footnote-11218939
+Node: Basic Data Typing1219124
+Node: Glossary1222452
+Node: Copying1254399
+Node: GNU Free Documentation License1291938
+Node: Index1317056

End Tag Table