aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1044
1 files changed, 550 insertions, 494 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 1766ab94..fd3a5b8a 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
@@ -13550,6 +13601,10 @@ contexts.
'"array"'
X is an array.
+ '"regexp"'
+ X is a strongly typed regexp (*note Strong Regexp
+ Constants::).
+
'"number"'
X is a number.
@@ -13596,7 +13651,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
@@ -35330,498 +35386,498 @@ 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-1373391
-Node: Boolean Ops373530
-Ref: Boolean Ops-Footnote-1378012
-Node: Conditional Exp378104
-Node: Function Calls379840
-Node: Precedence383717
-Node: Locales387376
-Node: Expressions Summary389008
-Node: Patterns and Actions391581
-Node: Pattern Overview392701
-Node: Regexp Patterns394378
-Node: Expression Patterns394920
-Node: Ranges398701
-Node: BEGIN/END401809
-Node: Using BEGIN/END402570
-Ref: Using BEGIN/END-Footnote-1405306
-Node: I/O And BEGIN/END405412
-Node: BEGINFILE/ENDFILE407726
-Node: Empty410633
-Node: Using Shell Variables410950
-Node: Action Overview413224
-Node: Statements415549
-Node: If Statement417397
-Node: While Statement418892
-Node: Do Statement420920
-Node: For Statement422068
-Node: Switch Statement425226
-Node: Break Statement427612
-Node: Continue Statement429704
-Node: Next Statement431531
-Node: Nextfile Statement433914
-Node: Exit Statement436566
-Node: Built-in Variables438969
-Node: User-modified440102
-Node: Auto-set447688
-Ref: Auto-set-Footnote-1462341
-Ref: Auto-set-Footnote-2462547
-Node: ARGC and ARGV462603
-Node: Pattern Action Summary466816
-Node: Arrays469246
-Node: Array Basics470575
-Node: Array Intro471419
-Ref: figure-array-elements473394
-Ref: Array Intro-Footnote-1476098
-Node: Reference to Elements476226
-Node: Assigning Elements478690
-Node: Array Example479181
-Node: Scanning an Array480940
-Node: Controlling Scanning483962
-Ref: Controlling Scanning-Footnote-1489361
-Node: Numeric Array Subscripts489677
-Node: Uninitialized Subscripts491861
-Node: Delete493480
-Ref: Delete-Footnote-1496232
-Node: Multidimensional496289
-Node: Multiscanning499384
-Node: Arrays of Arrays500975
-Node: Arrays Summary505742
-Node: Functions507835
-Node: Built-in508873
-Node: Calling Built-in509954
-Node: Numeric Functions511950
-Ref: Numeric Functions-Footnote-1516783
-Ref: Numeric Functions-Footnote-2517140
-Ref: Numeric Functions-Footnote-3517188
-Node: String Functions517460
-Ref: String Functions-Footnote-1540964
-Ref: String Functions-Footnote-2541092
-Ref: String Functions-Footnote-3541340
-Node: Gory Details541427
-Ref: table-sub-escapes543218
-Ref: table-sub-proposed544737
-Ref: table-posix-sub546100
-Ref: table-gensub-escapes547641
-Ref: Gory Details-Footnote-1548464
-Node: I/O Functions548618
-Ref: table-system-return-values555200
-Ref: I/O Functions-Footnote-1557180
-Ref: I/O Functions-Footnote-2557328
-Node: Time Functions557448
-Ref: Time Functions-Footnote-1567953
-Ref: Time Functions-Footnote-2568021
-Ref: Time Functions-Footnote-3568179
-Ref: Time Functions-Footnote-4568290
-Ref: Time Functions-Footnote-5568402
-Ref: Time Functions-Footnote-6568629
-Node: Bitwise Functions568895
-Ref: table-bitwise-ops569489
-Ref: Bitwise Functions-Footnote-1573827
-Node: Type Functions574000
-Node: I18N Functions576532
-Node: User-defined578183
-Node: Definition Syntax578988
-Ref: Definition Syntax-Footnote-1584675
-Node: Function Example584746
-Ref: Function Example-Footnote-1587668
-Node: Function Caveats587690
-Node: Calling A Function588208
-Node: Variable Scope589166
-Node: Pass By Value/Reference592160
-Node: Return Statement595659
-Node: Dynamic Typing598638
-Node: Indirect Calls599568
-Ref: Indirect Calls-Footnote-1609819
-Node: Functions Summary609947
-Node: Library Functions612652
-Ref: Library Functions-Footnote-1616259
-Ref: Library Functions-Footnote-2616402
-Node: Library Names616573
-Ref: Library Names-Footnote-1620033
-Ref: Library Names-Footnote-2620256
-Node: General Functions620342
-Node: Strtonum Function621445
-Node: Assert Function624467
-Node: Round Function627793
-Node: Cliff Random Function629334
-Node: Ordinal Functions630350
-Ref: Ordinal Functions-Footnote-1633413
-Ref: Ordinal Functions-Footnote-2633665
-Node: Join Function633875
-Ref: Join Function-Footnote-1635645
-Node: Getlocaltime Function635845
-Node: Readfile Function639587
-Node: Shell Quoting641559
-Node: Data File Management642960
-Node: Filetrans Function643592
-Node: Rewind Function647688
-Node: File Checking649594
-Ref: File Checking-Footnote-1650928
-Node: Empty Files651129
-Node: Ignoring Assigns653108
-Node: Getopt Function654658
-Ref: Getopt Function-Footnote-1666127
-Node: Passwd Functions666327
-Ref: Passwd Functions-Footnote-1675166
-Node: Group Functions675254
-Ref: Group Functions-Footnote-1683151
-Node: Walking Arrays683358
-Node: Library Functions Summary686366
-Node: Library Exercises687772
-Node: Sample Programs688237
-Node: Running Examples689007
-Node: Clones689735
-Node: Cut Program690959
-Node: Egrep Program700888
-Ref: Egrep Program-Footnote-1708400
-Node: Id Program708510
-Node: Split Program712190
-Ref: Split Program-Footnote-1715649
-Node: Tee Program715778
-Node: Uniq Program718568
-Node: Wc Program725994
-Ref: Wc Program-Footnote-1730249
-Node: Miscellaneous Programs730343
-Node: Dupword Program731556
-Node: Alarm Program733586
-Node: Translate Program738441
-Ref: Translate Program-Footnote-1743006
-Node: Labels Program743276
-Ref: Labels Program-Footnote-1746627
-Node: Word Sorting746711
-Node: History Sorting750783
-Node: Extract Program752618
-Node: Simple Sed760147
-Node: Igawk Program763221
-Ref: Igawk Program-Footnote-1777552
-Ref: Igawk Program-Footnote-2777754
-Ref: Igawk Program-Footnote-3777876
-Node: Anagram Program777991
-Node: Signature Program781053
-Node: Programs Summary782300
-Node: Programs Exercises783514
-Ref: Programs Exercises-Footnote-1787643
-Node: Advanced Features787734
-Node: Nondecimal Data789724
-Node: Array Sorting791315
-Node: Controlling Array Traversal792015
-Ref: Controlling Array Traversal-Footnote-1800382
-Node: Array Sorting Functions800500
-Ref: Array Sorting Functions-Footnote-1805591
-Node: Two-way I/O805787
-Ref: Two-way I/O-Footnote-1812337
-Ref: Two-way I/O-Footnote-2812524
-Node: TCP/IP Networking812606
-Node: Profiling815724
-Ref: Profiling-Footnote-1824217
-Node: Advanced Features Summary824540
-Node: Internationalization826384
-Node: I18N and L10N827864
-Node: Explaining gettext828551
-Ref: Explaining gettext-Footnote-1834443
-Ref: Explaining gettext-Footnote-2834628
-Node: Programmer i18n834793
-Ref: Programmer i18n-Footnote-1839648
-Node: Translator i18n839697
-Node: String Extraction840491
-Ref: String Extraction-Footnote-1841623
-Node: Printf Ordering841709
-Ref: Printf Ordering-Footnote-1844495
-Node: I18N Portability844559
-Ref: I18N Portability-Footnote-1847015
-Node: I18N Example847078
-Ref: I18N Example-Footnote-1849884
-Node: Gawk I18N849957
-Node: I18N Summary850602
-Node: Debugger851943
-Node: Debugging852965
-Node: Debugging Concepts853406
-Node: Debugging Terms855215
-Node: Awk Debugging857790
-Node: Sample Debugging Session858696
-Node: Debugger Invocation859230
-Node: Finding The Bug860616
-Node: List of Debugger Commands867094
-Node: Breakpoint Control868427
-Node: Debugger Execution Control872121
-Node: Viewing And Changing Data875483
-Node: Execution Stack878857
-Node: Debugger Info880494
-Node: Miscellaneous Debugger Commands884565
-Node: Readline Support889653
-Node: Limitations890549
-Ref: Limitations-Footnote-1894780
-Node: Debugging Summary894831
-Node: Arbitrary Precision Arithmetic896110
-Node: Computer Arithmetic897526
-Ref: table-numeric-ranges901117
-Ref: Computer Arithmetic-Footnote-1901839
-Node: Math Definitions901896
-Ref: table-ieee-formats905210
-Ref: Math Definitions-Footnote-1905813
-Node: MPFR features905918
-Node: FP Math Caution907635
-Ref: FP Math Caution-Footnote-1908707
-Node: Inexactness of computations909076
-Node: Inexact representation910036
-Node: Comparing FP Values911396
-Node: Errors accumulate912478
-Node: Getting Accuracy913911
-Node: Try To Round916621
-Node: Setting precision917520
-Ref: table-predefined-precision-strings918217
-Node: Setting the rounding mode920047
-Ref: table-gawk-rounding-modes920421
-Ref: Setting the rounding mode-Footnote-1923829
-Node: Arbitrary Precision Integers924008
-Ref: Arbitrary Precision Integers-Footnote-1928925
-Node: POSIX Floating Point Problems929074
-Ref: POSIX Floating Point Problems-Footnote-1932956
-Node: Floating point summary932994
-Node: Dynamic Extensions935184
-Node: Extension Intro936737
-Node: Plugin License938003
-Node: Extension Mechanism Outline938800
-Ref: figure-load-extension939239
-Ref: figure-register-new-function940804
-Ref: figure-call-new-function941896
-Node: Extension API Description943958
-Node: Extension API Functions Introduction945490
-Node: General Data Types950349
-Ref: General Data Types-Footnote-1956304
-Node: Memory Allocation Functions956603
-Ref: Memory Allocation Functions-Footnote-1959448
-Node: Constructor Functions959547
-Node: Registration Functions961292
-Node: Extension Functions961977
-Node: Exit Callback Functions964600
-Node: Extension Version String965850
-Node: Input Parsers966513
-Node: Output Wrappers976395
-Node: Two-way processors980907
-Node: Printing Messages983172
-Ref: Printing Messages-Footnote-1984343
-Node: Updating ERRNO984496
-Node: Requesting Values985235
-Ref: table-value-types-returned985972
-Node: Accessing Parameters986855
-Node: Symbol Table Access988090
-Node: Symbol table by name988602
-Node: Symbol table by cookie990623
-Ref: Symbol table by cookie-Footnote-1994775
-Node: Cached values994839
-Ref: Cached values-Footnote-1998346
-Node: Array Manipulation998437
-Ref: Array Manipulation-Footnote-1999528
-Node: Array Data Types999565
-Ref: Array Data Types-Footnote-11002223
-Node: Array Functions1002315
-Node: Flattening Arrays1006173
-Node: Creating Arrays1013081
-Node: Redirection API1017850
-Node: Extension API Variables1020681
-Node: Extension Versioning1021314
-Ref: gawk-api-version1021751
-Node: Extension API Informational Variables1023507
-Node: Extension API Boilerplate1024571
-Node: Finding Extensions1028385
-Node: Extension Example1028944
-Node: Internal File Description1029742
-Node: Internal File Ops1033822
-Ref: Internal File Ops-Footnote-11045584
-Node: Using Internal File Ops1045724
-Ref: Using Internal File Ops-Footnote-11048107
-Node: Extension Samples1048381
-Node: Extension Sample File Functions1049910
-Node: Extension Sample Fnmatch1057559
-Node: Extension Sample Fork1059046
-Node: Extension Sample Inplace1060264
-Node: Extension Sample Ord1063474
-Node: Extension Sample Readdir1064310
-Ref: table-readdir-file-types1065199
-Node: Extension Sample Revout1066004
-Node: Extension Sample Rev2way1066593
-Node: Extension Sample Read write array1067333
-Node: Extension Sample Readfile1069275
-Node: Extension Sample Time1070370
-Node: Extension Sample API Tests1071718
-Node: gawkextlib1072210
-Node: Extension summary1074657
-Node: Extension Exercises1078359
-Node: Language History1079857
-Node: V7/SVR3.11081513
-Node: SVR41083665
-Node: POSIX1085099
-Node: BTL1086478
-Node: POSIX/GNU1087207
-Node: Feature History1093069
-Node: Common Extensions1107439
-Node: Ranges and Locales1108722
-Ref: Ranges and Locales-Footnote-11113338
-Ref: Ranges and Locales-Footnote-21113365
-Ref: Ranges and Locales-Footnote-31113600
-Node: Contributors1113821
-Node: History summary1119381
-Node: Installation1120761
-Node: Gawk Distribution1121705
-Node: Getting1122189
-Node: Extracting1123150
-Node: Distribution contents1124788
-Node: Unix Installation1130882
-Node: Quick Installation1131564
-Node: Shell Startup Files1133978
-Node: Additional Configuration Options1135056
-Node: Configuration Philosophy1136861
-Node: Non-Unix Installation1139230
-Node: PC Installation1139688
-Node: PC Binary Installation1141008
-Node: PC Compiling1142860
-Ref: PC Compiling-Footnote-11145654
-Node: PC Testing1145763
-Node: PC Using1146943
-Ref: PC Using-Footnote-11151096
-Node: Cygwin1151169
-Node: MSYS1151939
-Node: VMS Installation1152440
-Node: VMS Compilation1153231
-Ref: VMS Compilation-Footnote-11154460
-Node: VMS Dynamic Extensions1154518
-Node: VMS Installation Details1156203
-Node: VMS Running1158456
-Node: VMS GNV1162735
-Node: VMS Old Gawk1163470
-Node: Bugs1163941
-Node: Other Versions1168256
-Node: Installation summary1174840
-Node: Notes1175891
-Node: Compatibility Mode1176756
-Node: Additions1177538
-Node: Accessing The Source1178463
-Node: Adding Code1179898
-Node: New Ports1186117
-Node: Derived Files1190605
-Ref: Derived Files-Footnote-11196090
-Ref: Derived Files-Footnote-21196125
-Ref: Derived Files-Footnote-31196723
-Node: Future Extensions1196837
-Node: Implementation Limitations1197495
-Node: Extension Design1198678
-Node: Old Extension Problems1199832
-Ref: Old Extension Problems-Footnote-11201350
-Node: Extension New Mechanism Goals1201407
-Ref: Extension New Mechanism Goals-Footnote-11204771
-Node: Extension Other Design Decisions1204960
-Node: Extension Future Growth1207073
-Node: Old Extension Mechanism1207909
-Node: Notes summary1209672
-Node: Basic Concepts1210854
-Node: Basic High Level1211535
-Ref: figure-general-flow1211817
-Ref: figure-process-flow1212502
-Ref: Basic High Level-Footnote-11215803
-Node: Basic Data Typing1215988
-Node: Glossary1219316
-Node: Copying1251263
-Node: GNU Free Documentation License1288802
-Node: Index1313920
+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-1375675
+Node: Boolean Ops375814
+Ref: Boolean Ops-Footnote-1380296
+Node: Conditional Exp380388
+Node: Function Calls382124
+Node: Precedence386001
+Node: Locales389660
+Node: Expressions Summary391292
+Node: Patterns and Actions393865
+Node: Pattern Overview394985
+Node: Regexp Patterns396662
+Node: Expression Patterns397204
+Node: Ranges400985
+Node: BEGIN/END404093
+Node: Using BEGIN/END404854
+Ref: Using BEGIN/END-Footnote-1407590
+Node: I/O And BEGIN/END407696
+Node: BEGINFILE/ENDFILE410010
+Node: Empty412917
+Node: Using Shell Variables413234
+Node: Action Overview415508
+Node: Statements417833
+Node: If Statement419681
+Node: While Statement421176
+Node: Do Statement423204
+Node: For Statement424352
+Node: Switch Statement427510
+Node: Break Statement429896
+Node: Continue Statement431988
+Node: Next Statement433815
+Node: Nextfile Statement436198
+Node: Exit Statement438850
+Node: Built-in Variables441253
+Node: User-modified442386
+Node: Auto-set449972
+Ref: Auto-set-Footnote-1464625
+Ref: Auto-set-Footnote-2464831
+Node: ARGC and ARGV464887
+Node: Pattern Action Summary469100
+Node: Arrays471530
+Node: Array Basics472859
+Node: Array Intro473703
+Ref: figure-array-elements475678
+Ref: Array Intro-Footnote-1478382
+Node: Reference to Elements478510
+Node: Assigning Elements480974
+Node: Array Example481465
+Node: Scanning an Array483224
+Node: Controlling Scanning486246
+Ref: Controlling Scanning-Footnote-1491645
+Node: Numeric Array Subscripts491961
+Node: Uninitialized Subscripts494145
+Node: Delete495764
+Ref: Delete-Footnote-1498516
+Node: Multidimensional498573
+Node: Multiscanning501668
+Node: Arrays of Arrays503259
+Node: Arrays Summary508026
+Node: Functions510119
+Node: Built-in511157
+Node: Calling Built-in512238
+Node: Numeric Functions514234
+Ref: Numeric Functions-Footnote-1519067
+Ref: Numeric Functions-Footnote-2519424
+Ref: Numeric Functions-Footnote-3519472
+Node: String Functions519744
+Ref: String Functions-Footnote-1543248
+Ref: String Functions-Footnote-2543376
+Ref: String Functions-Footnote-3543624
+Node: Gory Details543711
+Ref: table-sub-escapes545502
+Ref: table-sub-proposed547021
+Ref: table-posix-sub548384
+Ref: table-gensub-escapes549925
+Ref: Gory Details-Footnote-1550748
+Node: I/O Functions550902
+Ref: table-system-return-values557484
+Ref: I/O Functions-Footnote-1559464
+Ref: I/O Functions-Footnote-2559612
+Node: Time Functions559732
+Ref: Time Functions-Footnote-1570237
+Ref: Time Functions-Footnote-2570305
+Ref: Time Functions-Footnote-3570463
+Ref: Time Functions-Footnote-4570574
+Ref: Time Functions-Footnote-5570686
+Ref: Time Functions-Footnote-6570913
+Node: Bitwise Functions571179
+Ref: table-bitwise-ops571773
+Ref: Bitwise Functions-Footnote-1576111
+Node: Type Functions576284
+Node: I18N Functions578945
+Node: User-defined580596
+Node: Definition Syntax581401
+Ref: Definition Syntax-Footnote-1587088
+Node: Function Example587159
+Ref: Function Example-Footnote-1590081
+Node: Function Caveats590103
+Node: Calling A Function590621
+Node: Variable Scope591579
+Node: Pass By Value/Reference594573
+Node: Return Statement598072
+Node: Dynamic Typing601051
+Node: Indirect Calls601981
+Ref: Indirect Calls-Footnote-1612232
+Node: Functions Summary612360
+Node: Library Functions615065
+Ref: Library Functions-Footnote-1618672
+Ref: Library Functions-Footnote-2618815
+Node: Library Names618986
+Ref: Library Names-Footnote-1622446
+Ref: Library Names-Footnote-2622669
+Node: General Functions622755
+Node: Strtonum Function623858
+Node: Assert Function626880
+Node: Round Function630206
+Node: Cliff Random Function631747
+Node: Ordinal Functions632763
+Ref: Ordinal Functions-Footnote-1635826
+Ref: Ordinal Functions-Footnote-2636078
+Node: Join Function636288
+Ref: Join Function-Footnote-1638058
+Node: Getlocaltime Function638258
+Node: Readfile Function642000
+Node: Shell Quoting643972
+Node: Data File Management645373
+Node: Filetrans Function646005
+Node: Rewind Function650101
+Node: File Checking652007
+Ref: File Checking-Footnote-1653341
+Node: Empty Files653542
+Node: Ignoring Assigns655521
+Node: Getopt Function657071
+Ref: Getopt Function-Footnote-1668540
+Node: Passwd Functions668740
+Ref: Passwd Functions-Footnote-1677579
+Node: Group Functions677667
+Ref: Group Functions-Footnote-1685564
+Node: Walking Arrays685771
+Node: Library Functions Summary688779
+Node: Library Exercises690185
+Node: Sample Programs690650
+Node: Running Examples691420
+Node: Clones692148
+Node: Cut Program693372
+Node: Egrep Program703301
+Ref: Egrep Program-Footnote-1710813
+Node: Id Program710923
+Node: Split Program714603
+Ref: Split Program-Footnote-1718062
+Node: Tee Program718191
+Node: Uniq Program720981
+Node: Wc Program728407
+Ref: Wc Program-Footnote-1732662
+Node: Miscellaneous Programs732756
+Node: Dupword Program733969
+Node: Alarm Program735999
+Node: Translate Program740854
+Ref: Translate Program-Footnote-1745419
+Node: Labels Program745689
+Ref: Labels Program-Footnote-1749040
+Node: Word Sorting749124
+Node: History Sorting753196
+Node: Extract Program755031
+Node: Simple Sed762560
+Node: Igawk Program765634
+Ref: Igawk Program-Footnote-1779965
+Ref: Igawk Program-Footnote-2780167
+Ref: Igawk Program-Footnote-3780289
+Node: Anagram Program780404
+Node: Signature Program783466
+Node: Programs Summary784713
+Node: Programs Exercises785927
+Ref: Programs Exercises-Footnote-1790056
+Node: Advanced Features790147
+Node: Nondecimal Data792137
+Node: Array Sorting793728
+Node: Controlling Array Traversal794428
+Ref: Controlling Array Traversal-Footnote-1802795
+Node: Array Sorting Functions802913
+Ref: Array Sorting Functions-Footnote-1808004
+Node: Two-way I/O808200
+Ref: Two-way I/O-Footnote-1814750
+Ref: Two-way I/O-Footnote-2814937
+Node: TCP/IP Networking815019
+Node: Profiling818137
+Ref: Profiling-Footnote-1826630
+Node: Advanced Features Summary826953
+Node: Internationalization828797
+Node: I18N and L10N830277
+Node: Explaining gettext830964
+Ref: Explaining gettext-Footnote-1836856
+Ref: Explaining gettext-Footnote-2837041
+Node: Programmer i18n837206
+Ref: Programmer i18n-Footnote-1842061
+Node: Translator i18n842110
+Node: String Extraction842904
+Ref: String Extraction-Footnote-1844036
+Node: Printf Ordering844122
+Ref: Printf Ordering-Footnote-1846908
+Node: I18N Portability846972
+Ref: I18N Portability-Footnote-1849428
+Node: I18N Example849491
+Ref: I18N Example-Footnote-1852297
+Node: Gawk I18N852370
+Node: I18N Summary853015
+Node: Debugger854356
+Node: Debugging855378
+Node: Debugging Concepts855819
+Node: Debugging Terms857628
+Node: Awk Debugging860203
+Node: Sample Debugging Session861109
+Node: Debugger Invocation861643
+Node: Finding The Bug863029
+Node: List of Debugger Commands869507
+Node: Breakpoint Control870840
+Node: Debugger Execution Control874534
+Node: Viewing And Changing Data877896
+Node: Execution Stack881270
+Node: Debugger Info882907
+Node: Miscellaneous Debugger Commands886978
+Node: Readline Support892066
+Node: Limitations892962
+Ref: Limitations-Footnote-1897193
+Node: Debugging Summary897244
+Node: Arbitrary Precision Arithmetic898523
+Node: Computer Arithmetic899939
+Ref: table-numeric-ranges903530
+Ref: Computer Arithmetic-Footnote-1904252
+Node: Math Definitions904309
+Ref: table-ieee-formats907623
+Ref: Math Definitions-Footnote-1908226
+Node: MPFR features908331
+Node: FP Math Caution910048
+Ref: FP Math Caution-Footnote-1911120
+Node: Inexactness of computations911489
+Node: Inexact representation912449
+Node: Comparing FP Values913809
+Node: Errors accumulate914891
+Node: Getting Accuracy916324
+Node: Try To Round919034
+Node: Setting precision919933
+Ref: table-predefined-precision-strings920630
+Node: Setting the rounding mode922460
+Ref: table-gawk-rounding-modes922834
+Ref: Setting the rounding mode-Footnote-1926242
+Node: Arbitrary Precision Integers926421
+Ref: Arbitrary Precision Integers-Footnote-1931338
+Node: POSIX Floating Point Problems931487
+Ref: POSIX Floating Point Problems-Footnote-1935369
+Node: Floating point summary935407
+Node: Dynamic Extensions937597
+Node: Extension Intro939150
+Node: Plugin License940416
+Node: Extension Mechanism Outline941213
+Ref: figure-load-extension941652
+Ref: figure-register-new-function943217
+Ref: figure-call-new-function944309
+Node: Extension API Description946371
+Node: Extension API Functions Introduction947903
+Node: General Data Types952762
+Ref: General Data Types-Footnote-1958717
+Node: Memory Allocation Functions959016
+Ref: Memory Allocation Functions-Footnote-1961861
+Node: Constructor Functions961960
+Node: Registration Functions963705
+Node: Extension Functions964390
+Node: Exit Callback Functions967013
+Node: Extension Version String968263
+Node: Input Parsers968926
+Node: Output Wrappers978808
+Node: Two-way processors983320
+Node: Printing Messages985585
+Ref: Printing Messages-Footnote-1986756
+Node: Updating ERRNO986909
+Node: Requesting Values987648
+Ref: table-value-types-returned988385
+Node: Accessing Parameters989268
+Node: Symbol Table Access990503
+Node: Symbol table by name991015
+Node: Symbol table by cookie993036
+Ref: Symbol table by cookie-Footnote-1997188
+Node: Cached values997252
+Ref: Cached values-Footnote-11000759
+Node: Array Manipulation1000850
+Ref: Array Manipulation-Footnote-11001941
+Node: Array Data Types1001978
+Ref: Array Data Types-Footnote-11004636
+Node: Array Functions1004728
+Node: Flattening Arrays1008586
+Node: Creating Arrays1015494
+Node: Redirection API1020263
+Node: Extension API Variables1023094
+Node: Extension Versioning1023727
+Ref: gawk-api-version1024164
+Node: Extension API Informational Variables1025920
+Node: Extension API Boilerplate1026984
+Node: Finding Extensions1030798
+Node: Extension Example1031357
+Node: Internal File Description1032155
+Node: Internal File Ops1036235
+Ref: Internal File Ops-Footnote-11047997
+Node: Using Internal File Ops1048137
+Ref: Using Internal File Ops-Footnote-11050520
+Node: Extension Samples1050794
+Node: Extension Sample File Functions1052323
+Node: Extension Sample Fnmatch1059972
+Node: Extension Sample Fork1061459
+Node: Extension Sample Inplace1062677
+Node: Extension Sample Ord1065887
+Node: Extension Sample Readdir1066723
+Ref: table-readdir-file-types1067612
+Node: Extension Sample Revout1068417
+Node: Extension Sample Rev2way1069006
+Node: Extension Sample Read write array1069746
+Node: Extension Sample Readfile1071688
+Node: Extension Sample Time1072783
+Node: Extension Sample API Tests1074131
+Node: gawkextlib1074623
+Node: Extension summary1077070
+Node: Extension Exercises1080772
+Node: Language History1082270
+Node: V7/SVR3.11083926
+Node: SVR41086078
+Node: POSIX1087512
+Node: BTL1088891
+Node: POSIX/GNU1089620
+Node: Feature History1095482
+Node: Common Extensions1109852
+Node: Ranges and Locales1111135
+Ref: Ranges and Locales-Footnote-11115751
+Ref: Ranges and Locales-Footnote-21115778
+Ref: Ranges and Locales-Footnote-31116013
+Node: Contributors1116234
+Node: History summary1121794
+Node: Installation1123174
+Node: Gawk Distribution1124118
+Node: Getting1124602
+Node: Extracting1125563
+Node: Distribution contents1127201
+Node: Unix Installation1133295
+Node: Quick Installation1133977
+Node: Shell Startup Files1136391
+Node: Additional Configuration Options1137469
+Node: Configuration Philosophy1139274
+Node: Non-Unix Installation1141643
+Node: PC Installation1142101
+Node: PC Binary Installation1143421
+Node: PC Compiling1145273
+Ref: PC Compiling-Footnote-11148067
+Node: PC Testing1148176
+Node: PC Using1149356
+Ref: PC Using-Footnote-11153509
+Node: Cygwin1153582
+Node: MSYS1154352
+Node: VMS Installation1154853
+Node: VMS Compilation1155644
+Ref: VMS Compilation-Footnote-11156873
+Node: VMS Dynamic Extensions1156931
+Node: VMS Installation Details1158616
+Node: VMS Running1160869
+Node: VMS GNV1165148
+Node: VMS Old Gawk1165883
+Node: Bugs1166354
+Node: Other Versions1170669
+Node: Installation summary1177253
+Node: Notes1178304
+Node: Compatibility Mode1179169
+Node: Additions1179951
+Node: Accessing The Source1180876
+Node: Adding Code1182311
+Node: New Ports1188530
+Node: Derived Files1193018
+Ref: Derived Files-Footnote-11198503
+Ref: Derived Files-Footnote-21198538
+Ref: Derived Files-Footnote-31199136
+Node: Future Extensions1199250
+Node: Implementation Limitations1199908
+Node: Extension Design1201091
+Node: Old Extension Problems1202245
+Ref: Old Extension Problems-Footnote-11203763
+Node: Extension New Mechanism Goals1203820
+Ref: Extension New Mechanism Goals-Footnote-11207184
+Node: Extension Other Design Decisions1207373
+Node: Extension Future Growth1209486
+Node: Old Extension Mechanism1210322
+Node: Notes summary1212085
+Node: Basic Concepts1213267
+Node: Basic High Level1213948
+Ref: figure-general-flow1214230
+Ref: figure-process-flow1214915
+Ref: Basic High Level-Footnote-11218216
+Node: Basic Data Typing1218401
+Node: Glossary1221729
+Node: Copying1253676
+Node: GNU Free Documentation License1291215
+Node: Index1316333

End Tag Table