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 cbcf450c..97c9d3c0 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-sensitivity185992
Ref: Case-sensitivity-Footnote-1188888
Ref: Case-sensitivity-Footnote-2189123
Node: Strong Regexp Constants189231
-Node: Regexp Summary190020
-Node: Reading Files191495
-Node: Records193658
-Node: awk split records194391
-Node: gawk split records199322
-Ref: gawk split records-Footnote-1203862
-Node: Fields203899
-Node: Nonconstant Fields206640
-Ref: Nonconstant Fields-Footnote-1208876
-Node: Changing Fields209080
-Node: Field Separators215008
-Node: Default Field Splitting217706
-Node: Regexp Field Splitting218824
-Node: Single Character Fields222177
-Node: Command Line Field Separator223237
-Node: Full Line Fields226455
-Ref: Full Line Fields-Footnote-1227977
-Ref: Full Line Fields-Footnote-2228023
-Node: Field Splitting Summary228124
-Node: Constant Size230198
-Node: Splitting By Content234776
-Ref: Splitting By Content-Footnote-1238747
-Node: Multiple Line238910
-Ref: Multiple Line-Footnote-1244792
-Node: Getline244971
-Node: Plain Getline247437
-Node: Getline/Variable250076
-Node: Getline/File251225
-Node: Getline/Variable/File252611
-Ref: Getline/Variable/File-Footnote-1254214
-Node: Getline/Pipe254302
-Node: Getline/Variable/Pipe257007
-Node: Getline/Coprocess258140
-Node: Getline/Variable/Coprocess259405
-Node: Getline Notes260145
-Node: Getline Summary262940
-Ref: table-getline-variants263362
-Node: Read Timeout264110
-Ref: Read Timeout-Footnote-1268016
-Node: Retrying Input268074
-Node: Command-line directories269273
-Node: Input Summary270179
-Node: Input Exercises273351
-Node: Printing274079
-Node: Print275913
-Node: Print Examples277370
-Node: Output Separators280150
-Node: OFMT282167
-Node: Printf283523
-Node: Basic Printf284308
-Node: Control Letters285882
-Node: Format Modifiers289870
-Node: Printf Examples295885
-Node: Redirection298371
-Node: Special FD305212
-Ref: Special FD-Footnote-1308380
-Node: Special Files308454
-Node: Other Inherited Files309071
-Node: Special Network310072
-Node: Special Caveats310932
-Node: Close Files And Pipes311881
-Ref: table-close-pipe-return-values318788
-Ref: Close Files And Pipes-Footnote-1319571
-Ref: Close Files And Pipes-Footnote-2319719
-Node: Nonfatal319871
-Node: Output Summary322196
-Node: Output Exercises323418
-Node: Expressions324097
-Node: Values325285
-Node: Constants325963
-Node: Scalar Constants326654
-Ref: Scalar Constants-Footnote-1327518
-Node: Nondecimal-numbers327768
-Node: Regexp Constants330781
-Node: Using Constant Regexps331307
-Node: Variables334470
-Node: Using Variables335127
-Node: Assignment Options337037
-Node: Conversion338910
-Node: Strings And Numbers339434
-Ref: Strings And Numbers-Footnote-1342497
-Node: Locale influences conversions342606
-Ref: table-locale-affects345364
-Node: All Operators345982
-Node: Arithmetic Ops346611
-Node: Concatenation349117
-Ref: Concatenation-Footnote-1351964
-Node: Assignment Ops352071
-Ref: table-assign-ops357062
-Node: Increment Ops358375
-Node: Truth Values and Conditions361835
-Node: Truth Values362909
-Node: Typing and Comparison363957
-Node: Variable Typing364777
-Node: Comparison Operators368401
-Ref: table-relational-ops368820
-Node: POSIX String Comparison372315
-Ref: POSIX String Comparison-Footnote-1373389
-Node: Boolean Ops373528
-Ref: Boolean Ops-Footnote-1378010
-Node: Conditional Exp378102
-Node: Function Calls379838
-Node: Precedence383715
-Node: Locales387374
-Node: Expressions Summary389006
-Node: Patterns and Actions391579
-Node: Pattern Overview392699
-Node: Regexp Patterns394376
-Node: Expression Patterns394918
-Node: Ranges398699
-Node: BEGIN/END401807
-Node: Using BEGIN/END402568
-Ref: Using BEGIN/END-Footnote-1405304
-Node: I/O And BEGIN/END405410
-Node: BEGINFILE/ENDFILE407724
-Node: Empty410631
-Node: Using Shell Variables410948
-Node: Action Overview413222
-Node: Statements415547
-Node: If Statement417395
-Node: While Statement418890
-Node: Do Statement420918
-Node: For Statement422066
-Node: Switch Statement425224
-Node: Break Statement427610
-Node: Continue Statement429702
-Node: Next Statement431529
-Node: Nextfile Statement433912
-Node: Exit Statement436564
-Node: Built-in Variables438967
-Node: User-modified440100
-Node: Auto-set447686
-Ref: Auto-set-Footnote-1462339
-Ref: Auto-set-Footnote-2462545
-Node: ARGC and ARGV462601
-Node: Pattern Action Summary466814
-Node: Arrays469244
-Node: Array Basics470573
-Node: Array Intro471417
-Ref: figure-array-elements473392
-Ref: Array Intro-Footnote-1476096
-Node: Reference to Elements476224
-Node: Assigning Elements478688
-Node: Array Example479179
-Node: Scanning an Array480938
-Node: Controlling Scanning483960
-Ref: Controlling Scanning-Footnote-1489359
-Node: Numeric Array Subscripts489675
-Node: Uninitialized Subscripts491859
-Node: Delete493478
-Ref: Delete-Footnote-1496230
-Node: Multidimensional496287
-Node: Multiscanning499382
-Node: Arrays of Arrays500973
-Node: Arrays Summary505740
-Node: Functions507833
-Node: Built-in508871
-Node: Calling Built-in509952
-Node: Numeric Functions511948
-Ref: Numeric Functions-Footnote-1516781
-Ref: Numeric Functions-Footnote-2517138
-Ref: Numeric Functions-Footnote-3517186
-Node: String Functions517458
-Ref: String Functions-Footnote-1540962
-Ref: String Functions-Footnote-2541090
-Ref: String Functions-Footnote-3541338
-Node: Gory Details541425
-Ref: table-sub-escapes543216
-Ref: table-sub-proposed544735
-Ref: table-posix-sub546098
-Ref: table-gensub-escapes547639
-Ref: Gory Details-Footnote-1548462
-Node: I/O Functions548616
-Ref: table-system-return-values555198
-Ref: I/O Functions-Footnote-1557178
-Ref: I/O Functions-Footnote-2557326
-Node: Time Functions557446
-Ref: Time Functions-Footnote-1567951
-Ref: Time Functions-Footnote-2568019
-Ref: Time Functions-Footnote-3568177
-Ref: Time Functions-Footnote-4568288
-Ref: Time Functions-Footnote-5568400
-Ref: Time Functions-Footnote-6568627
-Node: Bitwise Functions568893
-Ref: table-bitwise-ops569487
-Ref: Bitwise Functions-Footnote-1573825
-Node: Type Functions573998
-Node: I18N Functions576530
-Node: User-defined578181
-Node: Definition Syntax578986
-Ref: Definition Syntax-Footnote-1584673
-Node: Function Example584744
-Ref: Function Example-Footnote-1587666
-Node: Function Caveats587688
-Node: Calling A Function588206
-Node: Variable Scope589164
-Node: Pass By Value/Reference592158
-Node: Return Statement595657
-Node: Dynamic Typing598636
-Node: Indirect Calls599566
-Ref: Indirect Calls-Footnote-1609817
-Node: Functions Summary609945
-Node: Library Functions612650
-Ref: Library Functions-Footnote-1616257
-Ref: Library Functions-Footnote-2616400
-Node: Library Names616571
-Ref: Library Names-Footnote-1620031
-Ref: Library Names-Footnote-2620254
-Node: General Functions620340
-Node: Strtonum Function621443
-Node: Assert Function624465
-Node: Round Function627791
-Node: Cliff Random Function629332
-Node: Ordinal Functions630348
-Ref: Ordinal Functions-Footnote-1633411
-Ref: Ordinal Functions-Footnote-2633663
-Node: Join Function633873
-Ref: Join Function-Footnote-1635643
-Node: Getlocaltime Function635843
-Node: Readfile Function639585
-Node: Shell Quoting641557
-Node: Data File Management642958
-Node: Filetrans Function643590
-Node: Rewind Function647686
-Node: File Checking649591
-Ref: File Checking-Footnote-1650925
-Node: Empty Files651126
-Node: Ignoring Assigns653105
-Node: Getopt Function654655
-Ref: Getopt Function-Footnote-1666124
-Node: Passwd Functions666324
-Ref: Passwd Functions-Footnote-1675163
-Node: Group Functions675251
-Ref: Group Functions-Footnote-1683148
-Node: Walking Arrays683355
-Node: Library Functions Summary686363
-Node: Library Exercises687769
-Node: Sample Programs688234
-Node: Running Examples689004
-Node: Clones689732
-Node: Cut Program690956
-Node: Egrep Program700885
-Ref: Egrep Program-Footnote-1708397
-Node: Id Program708507
-Node: Split Program712187
-Ref: Split Program-Footnote-1715646
-Node: Tee Program715775
-Node: Uniq Program718565
-Node: Wc Program725991
-Ref: Wc Program-Footnote-1730246
-Node: Miscellaneous Programs730340
-Node: Dupword Program731553
-Node: Alarm Program733583
-Node: Translate Program738438
-Ref: Translate Program-Footnote-1743003
-Node: Labels Program743273
-Ref: Labels Program-Footnote-1746624
-Node: Word Sorting746708
-Node: History Sorting750780
-Node: Extract Program752615
-Node: Simple Sed760144
-Node: Igawk Program763218
-Ref: Igawk Program-Footnote-1777549
-Ref: Igawk Program-Footnote-2777751
-Ref: Igawk Program-Footnote-3777873
-Node: Anagram Program777988
-Node: Signature Program781050
-Node: Programs Summary782297
-Node: Programs Exercises783511
-Ref: Programs Exercises-Footnote-1787640
-Node: Advanced Features787731
-Node: Nondecimal Data789721
-Node: Array Sorting791312
-Node: Controlling Array Traversal792012
-Ref: Controlling Array Traversal-Footnote-1800379
-Node: Array Sorting Functions800497
-Ref: Array Sorting Functions-Footnote-1805588
-Node: Two-way I/O805784
-Ref: Two-way I/O-Footnote-1812334
-Ref: Two-way I/O-Footnote-2812521
-Node: TCP/IP Networking812603
-Node: Profiling815721
-Ref: Profiling-Footnote-1824214
-Node: Advanced Features Summary824537
-Node: Internationalization826381
-Node: I18N and L10N827861
-Node: Explaining gettext828548
-Ref: Explaining gettext-Footnote-1834440
-Ref: Explaining gettext-Footnote-2834625
-Node: Programmer i18n834790
-Ref: Programmer i18n-Footnote-1839645
-Node: Translator i18n839694
-Node: String Extraction840488
-Ref: String Extraction-Footnote-1841620
-Node: Printf Ordering841706
-Ref: Printf Ordering-Footnote-1844492
-Node: I18N Portability844556
-Ref: I18N Portability-Footnote-1847012
-Node: I18N Example847075
-Ref: I18N Example-Footnote-1849881
-Node: Gawk I18N849954
-Node: I18N Summary850599
-Node: Debugger851940
-Node: Debugging852962
-Node: Debugging Concepts853403
-Node: Debugging Terms855212
-Node: Awk Debugging857787
-Node: Sample Debugging Session858693
-Node: Debugger Invocation859227
-Node: Finding The Bug860613
-Node: List of Debugger Commands867091
-Node: Breakpoint Control868424
-Node: Debugger Execution Control872118
-Node: Viewing And Changing Data875480
-Node: Execution Stack878854
-Node: Debugger Info880491
-Node: Miscellaneous Debugger Commands884562
-Node: Readline Support889650
-Node: Limitations890546
-Ref: Limitations-Footnote-1894777
-Node: Debugging Summary894828
-Node: Arbitrary Precision Arithmetic896107
-Node: Computer Arithmetic897523
-Ref: table-numeric-ranges901114
-Ref: Computer Arithmetic-Footnote-1901836
-Node: Math Definitions901893
-Ref: table-ieee-formats905207
-Ref: Math Definitions-Footnote-1905810
-Node: MPFR features905915
-Node: FP Math Caution907632
-Ref: FP Math Caution-Footnote-1908704
-Node: Inexactness of computations909073
-Node: Inexact representation910033
-Node: Comparing FP Values911393
-Node: Errors accumulate912475
-Node: Getting Accuracy913908
-Node: Try To Round916618
-Node: Setting precision917517
-Ref: table-predefined-precision-strings918214
-Node: Setting the rounding mode920044
-Ref: table-gawk-rounding-modes920418
-Ref: Setting the rounding mode-Footnote-1923826
-Node: Arbitrary Precision Integers924005
-Ref: Arbitrary Precision Integers-Footnote-1928922
-Node: POSIX Floating Point Problems929071
-Ref: POSIX Floating Point Problems-Footnote-1932953
-Node: Floating point summary932991
-Node: Dynamic Extensions935181
-Node: Extension Intro936734
-Node: Plugin License938000
-Node: Extension Mechanism Outline938797
-Ref: figure-load-extension939236
-Ref: figure-register-new-function940801
-Ref: figure-call-new-function941893
-Node: Extension API Description943955
-Node: Extension API Functions Introduction945487
-Node: General Data Types950346
-Ref: General Data Types-Footnote-1956301
-Node: Memory Allocation Functions956600
-Ref: Memory Allocation Functions-Footnote-1959445
-Node: Constructor Functions959544
-Node: Registration Functions961289
-Node: Extension Functions961974
-Node: Exit Callback Functions964597
-Node: Extension Version String965847
-Node: Input Parsers966510
-Node: Output Wrappers976392
-Node: Two-way processors980904
-Node: Printing Messages983169
-Ref: Printing Messages-Footnote-1984340
-Node: Updating ERRNO984493
-Node: Requesting Values985232
-Ref: table-value-types-returned985969
-Node: Accessing Parameters986852
-Node: Symbol Table Access988087
-Node: Symbol table by name988599
-Node: Symbol table by cookie990620
-Ref: Symbol table by cookie-Footnote-1994772
-Node: Cached values994836
-Ref: Cached values-Footnote-1998343
-Node: Array Manipulation998434
-Ref: Array Manipulation-Footnote-1999525
-Node: Array Data Types999562
-Ref: Array Data Types-Footnote-11002220
-Node: Array Functions1002312
-Node: Flattening Arrays1006170
-Node: Creating Arrays1013078
-Node: Redirection API1017847
-Node: Extension API Variables1020678
-Node: Extension Versioning1021311
-Ref: gawk-api-version1021748
-Node: Extension API Informational Variables1023504
-Node: Extension API Boilerplate1024568
-Node: Finding Extensions1028382
-Node: Extension Example1028941
-Node: Internal File Description1029739
-Node: Internal File Ops1033819
-Ref: Internal File Ops-Footnote-11045581
-Node: Using Internal File Ops1045721
-Ref: Using Internal File Ops-Footnote-11048104
-Node: Extension Samples1048378
-Node: Extension Sample File Functions1049907
-Node: Extension Sample Fnmatch1057556
-Node: Extension Sample Fork1059043
-Node: Extension Sample Inplace1060261
-Node: Extension Sample Ord1063471
-Node: Extension Sample Readdir1064307
-Ref: table-readdir-file-types1065196
-Node: Extension Sample Revout1066001
-Node: Extension Sample Rev2way1066590
-Node: Extension Sample Read write array1067330
-Node: Extension Sample Readfile1069272
-Node: Extension Sample Time1070367
-Node: Extension Sample API Tests1071715
-Node: gawkextlib1072207
-Node: Extension summary1074654
-Node: Extension Exercises1078356
-Node: Language History1079854
-Node: V7/SVR3.11081510
-Node: SVR41083662
-Node: POSIX1085096
-Node: BTL1086475
-Node: POSIX/GNU1087204
-Node: Feature History1093066
-Node: Common Extensions1107436
-Node: Ranges and Locales1108719
-Ref: Ranges and Locales-Footnote-11113335
-Ref: Ranges and Locales-Footnote-21113362
-Ref: Ranges and Locales-Footnote-31113597
-Node: Contributors1113818
-Node: History summary1119378
-Node: Installation1120758
-Node: Gawk Distribution1121702
-Node: Getting1122186
-Node: Extracting1123147
-Node: Distribution contents1124785
-Node: Unix Installation1130879
-Node: Quick Installation1131561
-Node: Shell Startup Files1133975
-Node: Additional Configuration Options1135053
-Node: Configuration Philosophy1136858
-Node: Non-Unix Installation1139227
-Node: PC Installation1139685
-Node: PC Binary Installation1141005
-Node: PC Compiling1142857
-Ref: PC Compiling-Footnote-11145651
-Node: PC Testing1145760
-Node: PC Using1146940
-Ref: PC Using-Footnote-11151093
-Node: Cygwin1151166
-Node: MSYS1151936
-Node: VMS Installation1152437
-Node: VMS Compilation1153228
-Ref: VMS Compilation-Footnote-11154457
-Node: VMS Dynamic Extensions1154515
-Node: VMS Installation Details1156200
-Node: VMS Running1158453
-Node: VMS GNV1162732
-Node: VMS Old Gawk1163467
-Node: Bugs1163938
-Node: Other Versions1168253
-Node: Installation summary1174837
-Node: Notes1175888
-Node: Compatibility Mode1176753
-Node: Additions1177535
-Node: Accessing The Source1178460
-Node: Adding Code1179895
-Node: New Ports1186114
-Node: Derived Files1190602
-Ref: Derived Files-Footnote-11196087
-Ref: Derived Files-Footnote-21196122
-Ref: Derived Files-Footnote-31196720
-Node: Future Extensions1196834
-Node: Implementation Limitations1197492
-Node: Extension Design1198675
-Node: Old Extension Problems1199829
-Ref: Old Extension Problems-Footnote-11201347
-Node: Extension New Mechanism Goals1201404
-Ref: Extension New Mechanism Goals-Footnote-11204768
-Node: Extension Other Design Decisions1204957
-Node: Extension Future Growth1207070
-Node: Old Extension Mechanism1207906
-Node: Notes summary1209669
-Node: Basic Concepts1210851
-Node: Basic High Level1211532
-Ref: figure-general-flow1211814
-Ref: figure-process-flow1212499
-Ref: Basic High Level-Footnote-11215800
-Node: Basic Data Typing1215985
-Node: Glossary1219313
-Node: Copying1251259
-Node: GNU Free Documentation License1288798
-Node: Index1313916
+Node: Regexp Summary192173
+Node: Reading Files193779
+Node: Records195942
+Node: awk split records196675
+Node: gawk split records201606
+Ref: gawk split records-Footnote-1206146
+Node: Fields206183
+Node: Nonconstant Fields208924
+Ref: Nonconstant Fields-Footnote-1211160
+Node: Changing Fields211364
+Node: Field Separators217292
+Node: Default Field Splitting219990
+Node: Regexp Field Splitting221108
+Node: Single Character Fields224461
+Node: Command Line Field Separator225521
+Node: Full Line Fields228739
+Ref: Full Line Fields-Footnote-1230261
+Ref: Full Line Fields-Footnote-2230307
+Node: Field Splitting Summary230408
+Node: Constant Size232482
+Node: Splitting By Content237060
+Ref: Splitting By Content-Footnote-1241031
+Node: Multiple Line241194
+Ref: Multiple Line-Footnote-1247076
+Node: Getline247255
+Node: Plain Getline249721
+Node: Getline/Variable252360
+Node: Getline/File253509
+Node: Getline/Variable/File254895
+Ref: Getline/Variable/File-Footnote-1256498
+Node: Getline/Pipe256586
+Node: Getline/Variable/Pipe259291
+Node: Getline/Coprocess260424
+Node: Getline/Variable/Coprocess261689
+Node: Getline Notes262429
+Node: Getline Summary265224
+Ref: table-getline-variants265646
+Node: Read Timeout266394
+Ref: Read Timeout-Footnote-1270300
+Node: Retrying Input270358
+Node: Command-line directories271557
+Node: Input Summary272463
+Node: Input Exercises275635
+Node: Printing276363
+Node: Print278197
+Node: Print Examples279654
+Node: Output Separators282434
+Node: OFMT284451
+Node: Printf285807
+Node: Basic Printf286592
+Node: Control Letters288166
+Node: Format Modifiers292154
+Node: Printf Examples298169
+Node: Redirection300655
+Node: Special FD307496
+Ref: Special FD-Footnote-1310664
+Node: Special Files310738
+Node: Other Inherited Files311355
+Node: Special Network312356
+Node: Special Caveats313216
+Node: Close Files And Pipes314165
+Ref: table-close-pipe-return-values321072
+Ref: Close Files And Pipes-Footnote-1321855
+Ref: Close Files And Pipes-Footnote-2322003
+Node: Nonfatal322155
+Node: Output Summary324480
+Node: Output Exercises325702
+Node: Expressions326381
+Node: Values327569
+Node: Constants328247
+Node: Scalar Constants328938
+Ref: Scalar Constants-Footnote-1329802
+Node: Nondecimal-numbers330052
+Node: Regexp Constants333065
+Node: Using Constant Regexps333591
+Node: Variables336754
+Node: Using Variables337411
+Node: Assignment Options339321
+Node: Conversion341194
+Node: Strings And Numbers341718
+Ref: Strings And Numbers-Footnote-1344781
+Node: Locale influences conversions344890
+Ref: table-locale-affects347648
+Node: All Operators348266
+Node: Arithmetic Ops348895
+Node: Concatenation351401
+Ref: Concatenation-Footnote-1354248
+Node: Assignment Ops354355
+Ref: table-assign-ops359346
+Node: Increment Ops360659
+Node: Truth Values and Conditions364119
+Node: Truth Values365193
+Node: Typing and Comparison366241
+Node: Variable Typing367061
+Node: Comparison Operators370685
+Ref: table-relational-ops371104
+Node: POSIX String Comparison374599
+Ref: POSIX String Comparison-Footnote-1375673
+Node: Boolean Ops375812
+Ref: Boolean Ops-Footnote-1380294
+Node: Conditional Exp380386
+Node: Function Calls382122
+Node: Precedence385999
+Node: Locales389658
+Node: Expressions Summary391290
+Node: Patterns and Actions393863
+Node: Pattern Overview394983
+Node: Regexp Patterns396660
+Node: Expression Patterns397202
+Node: Ranges400983
+Node: BEGIN/END404091
+Node: Using BEGIN/END404852
+Ref: Using BEGIN/END-Footnote-1407588
+Node: I/O And BEGIN/END407694
+Node: BEGINFILE/ENDFILE410008
+Node: Empty412915
+Node: Using Shell Variables413232
+Node: Action Overview415506
+Node: Statements417831
+Node: If Statement419679
+Node: While Statement421174
+Node: Do Statement423202
+Node: For Statement424350
+Node: Switch Statement427508
+Node: Break Statement429894
+Node: Continue Statement431986
+Node: Next Statement433813
+Node: Nextfile Statement436196
+Node: Exit Statement438848
+Node: Built-in Variables441251
+Node: User-modified442384
+Node: Auto-set449970
+Ref: Auto-set-Footnote-1464623
+Ref: Auto-set-Footnote-2464829
+Node: ARGC and ARGV464885
+Node: Pattern Action Summary469098
+Node: Arrays471528
+Node: Array Basics472857
+Node: Array Intro473701
+Ref: figure-array-elements475676
+Ref: Array Intro-Footnote-1478380
+Node: Reference to Elements478508
+Node: Assigning Elements480972
+Node: Array Example481463
+Node: Scanning an Array483222
+Node: Controlling Scanning486244
+Ref: Controlling Scanning-Footnote-1491643
+Node: Numeric Array Subscripts491959
+Node: Uninitialized Subscripts494143
+Node: Delete495762
+Ref: Delete-Footnote-1498514
+Node: Multidimensional498571
+Node: Multiscanning501666
+Node: Arrays of Arrays503257
+Node: Arrays Summary508024
+Node: Functions510117
+Node: Built-in511155
+Node: Calling Built-in512236
+Node: Numeric Functions514232
+Ref: Numeric Functions-Footnote-1519065
+Ref: Numeric Functions-Footnote-2519422
+Ref: Numeric Functions-Footnote-3519470
+Node: String Functions519742
+Ref: String Functions-Footnote-1543246
+Ref: String Functions-Footnote-2543374
+Ref: String Functions-Footnote-3543622
+Node: Gory Details543709
+Ref: table-sub-escapes545500
+Ref: table-sub-proposed547019
+Ref: table-posix-sub548382
+Ref: table-gensub-escapes549923
+Ref: Gory Details-Footnote-1550746
+Node: I/O Functions550900
+Ref: table-system-return-values557482
+Ref: I/O Functions-Footnote-1559462
+Ref: I/O Functions-Footnote-2559610
+Node: Time Functions559730
+Ref: Time Functions-Footnote-1570235
+Ref: Time Functions-Footnote-2570303
+Ref: Time Functions-Footnote-3570461
+Ref: Time Functions-Footnote-4570572
+Ref: Time Functions-Footnote-5570684
+Ref: Time Functions-Footnote-6570911
+Node: Bitwise Functions571177
+Ref: table-bitwise-ops571771
+Ref: Bitwise Functions-Footnote-1576109
+Node: Type Functions576282
+Node: I18N Functions578943
+Node: User-defined580594
+Node: Definition Syntax581399
+Ref: Definition Syntax-Footnote-1587086
+Node: Function Example587157
+Ref: Function Example-Footnote-1590079
+Node: Function Caveats590101
+Node: Calling A Function590619
+Node: Variable Scope591577
+Node: Pass By Value/Reference594571
+Node: Return Statement598070
+Node: Dynamic Typing601049
+Node: Indirect Calls601979
+Ref: Indirect Calls-Footnote-1612230
+Node: Functions Summary612358
+Node: Library Functions615063
+Ref: Library Functions-Footnote-1618670
+Ref: Library Functions-Footnote-2618813
+Node: Library Names618984
+Ref: Library Names-Footnote-1622444
+Ref: Library Names-Footnote-2622667
+Node: General Functions622753
+Node: Strtonum Function623856
+Node: Assert Function626878
+Node: Round Function630204
+Node: Cliff Random Function631745
+Node: Ordinal Functions632761
+Ref: Ordinal Functions-Footnote-1635824
+Ref: Ordinal Functions-Footnote-2636076
+Node: Join Function636286
+Ref: Join Function-Footnote-1638056
+Node: Getlocaltime Function638256
+Node: Readfile Function641998
+Node: Shell Quoting643970
+Node: Data File Management645371
+Node: Filetrans Function646003
+Node: Rewind Function650099
+Node: File Checking652004
+Ref: File Checking-Footnote-1653338
+Node: Empty Files653539
+Node: Ignoring Assigns655518
+Node: Getopt Function657068
+Ref: Getopt Function-Footnote-1668537
+Node: Passwd Functions668737
+Ref: Passwd Functions-Footnote-1677576
+Node: Group Functions677664
+Ref: Group Functions-Footnote-1685561
+Node: Walking Arrays685768
+Node: Library Functions Summary688776
+Node: Library Exercises690182
+Node: Sample Programs690647
+Node: Running Examples691417
+Node: Clones692145
+Node: Cut Program693369
+Node: Egrep Program703298
+Ref: Egrep Program-Footnote-1710810
+Node: Id Program710920
+Node: Split Program714600
+Ref: Split Program-Footnote-1718059
+Node: Tee Program718188
+Node: Uniq Program720978
+Node: Wc Program728404
+Ref: Wc Program-Footnote-1732659
+Node: Miscellaneous Programs732753
+Node: Dupword Program733966
+Node: Alarm Program735996
+Node: Translate Program740851
+Ref: Translate Program-Footnote-1745416
+Node: Labels Program745686
+Ref: Labels Program-Footnote-1749037
+Node: Word Sorting749121
+Node: History Sorting753193
+Node: Extract Program755028
+Node: Simple Sed762557
+Node: Igawk Program765631
+Ref: Igawk Program-Footnote-1779962
+Ref: Igawk Program-Footnote-2780164
+Ref: Igawk Program-Footnote-3780286
+Node: Anagram Program780401
+Node: Signature Program783463
+Node: Programs Summary784710
+Node: Programs Exercises785924
+Ref: Programs Exercises-Footnote-1790053
+Node: Advanced Features790144
+Node: Nondecimal Data792134
+Node: Array Sorting793725
+Node: Controlling Array Traversal794425
+Ref: Controlling Array Traversal-Footnote-1802792
+Node: Array Sorting Functions802910
+Ref: Array Sorting Functions-Footnote-1808001
+Node: Two-way I/O808197
+Ref: Two-way I/O-Footnote-1814747
+Ref: Two-way I/O-Footnote-2814934
+Node: TCP/IP Networking815016
+Node: Profiling818134
+Ref: Profiling-Footnote-1826627
+Node: Advanced Features Summary826950
+Node: Internationalization828794
+Node: I18N and L10N830274
+Node: Explaining gettext830961
+Ref: Explaining gettext-Footnote-1836853
+Ref: Explaining gettext-Footnote-2837038
+Node: Programmer i18n837203
+Ref: Programmer i18n-Footnote-1842058
+Node: Translator i18n842107
+Node: String Extraction842901
+Ref: String Extraction-Footnote-1844033
+Node: Printf Ordering844119
+Ref: Printf Ordering-Footnote-1846905
+Node: I18N Portability846969
+Ref: I18N Portability-Footnote-1849425
+Node: I18N Example849488
+Ref: I18N Example-Footnote-1852294
+Node: Gawk I18N852367
+Node: I18N Summary853012
+Node: Debugger854353
+Node: Debugging855375
+Node: Debugging Concepts855816
+Node: Debugging Terms857625
+Node: Awk Debugging860200
+Node: Sample Debugging Session861106
+Node: Debugger Invocation861640
+Node: Finding The Bug863026
+Node: List of Debugger Commands869504
+Node: Breakpoint Control870837
+Node: Debugger Execution Control874531
+Node: Viewing And Changing Data877893
+Node: Execution Stack881267
+Node: Debugger Info882904
+Node: Miscellaneous Debugger Commands886975
+Node: Readline Support892063
+Node: Limitations892959
+Ref: Limitations-Footnote-1897190
+Node: Debugging Summary897241
+Node: Arbitrary Precision Arithmetic898520
+Node: Computer Arithmetic899936
+Ref: table-numeric-ranges903527
+Ref: Computer Arithmetic-Footnote-1904249
+Node: Math Definitions904306
+Ref: table-ieee-formats907620
+Ref: Math Definitions-Footnote-1908223
+Node: MPFR features908328
+Node: FP Math Caution910045
+Ref: FP Math Caution-Footnote-1911117
+Node: Inexactness of computations911486
+Node: Inexact representation912446
+Node: Comparing FP Values913806
+Node: Errors accumulate914888
+Node: Getting Accuracy916321
+Node: Try To Round919031
+Node: Setting precision919930
+Ref: table-predefined-precision-strings920627
+Node: Setting the rounding mode922457
+Ref: table-gawk-rounding-modes922831
+Ref: Setting the rounding mode-Footnote-1926239
+Node: Arbitrary Precision Integers926418
+Ref: Arbitrary Precision Integers-Footnote-1931335
+Node: POSIX Floating Point Problems931484
+Ref: POSIX Floating Point Problems-Footnote-1935366
+Node: Floating point summary935404
+Node: Dynamic Extensions937594
+Node: Extension Intro939147
+Node: Plugin License940413
+Node: Extension Mechanism Outline941210
+Ref: figure-load-extension941649
+Ref: figure-register-new-function943214
+Ref: figure-call-new-function944306
+Node: Extension API Description946368
+Node: Extension API Functions Introduction947900
+Node: General Data Types952759
+Ref: General Data Types-Footnote-1958714
+Node: Memory Allocation Functions959013
+Ref: Memory Allocation Functions-Footnote-1961858
+Node: Constructor Functions961957
+Node: Registration Functions963702
+Node: Extension Functions964387
+Node: Exit Callback Functions967010
+Node: Extension Version String968260
+Node: Input Parsers968923
+Node: Output Wrappers978805
+Node: Two-way processors983317
+Node: Printing Messages985582
+Ref: Printing Messages-Footnote-1986753
+Node: Updating ERRNO986906
+Node: Requesting Values987645
+Ref: table-value-types-returned988382
+Node: Accessing Parameters989265
+Node: Symbol Table Access990500
+Node: Symbol table by name991012
+Node: Symbol table by cookie993033
+Ref: Symbol table by cookie-Footnote-1997185
+Node: Cached values997249
+Ref: Cached values-Footnote-11000756
+Node: Array Manipulation1000847
+Ref: Array Manipulation-Footnote-11001938
+Node: Array Data Types1001975
+Ref: Array Data Types-Footnote-11004633
+Node: Array Functions1004725
+Node: Flattening Arrays1008583
+Node: Creating Arrays1015491
+Node: Redirection API1020260
+Node: Extension API Variables1023091
+Node: Extension Versioning1023724
+Ref: gawk-api-version1024161
+Node: Extension API Informational Variables1025917
+Node: Extension API Boilerplate1026981
+Node: Finding Extensions1030795
+Node: Extension Example1031354
+Node: Internal File Description1032152
+Node: Internal File Ops1036232
+Ref: Internal File Ops-Footnote-11047994
+Node: Using Internal File Ops1048134
+Ref: Using Internal File Ops-Footnote-11050517
+Node: Extension Samples1050791
+Node: Extension Sample File Functions1052320
+Node: Extension Sample Fnmatch1059969
+Node: Extension Sample Fork1061456
+Node: Extension Sample Inplace1062674
+Node: Extension Sample Ord1065884
+Node: Extension Sample Readdir1066720
+Ref: table-readdir-file-types1067609
+Node: Extension Sample Revout1068414
+Node: Extension Sample Rev2way1069003
+Node: Extension Sample Read write array1069743
+Node: Extension Sample Readfile1071685
+Node: Extension Sample Time1072780
+Node: Extension Sample API Tests1074128
+Node: gawkextlib1074620
+Node: Extension summary1077067
+Node: Extension Exercises1080769
+Node: Language History1082267
+Node: V7/SVR3.11083923
+Node: SVR41086075
+Node: POSIX1087509
+Node: BTL1088888
+Node: POSIX/GNU1089617
+Node: Feature History1095479
+Node: Common Extensions1109849
+Node: Ranges and Locales1111132
+Ref: Ranges and Locales-Footnote-11115748
+Ref: Ranges and Locales-Footnote-21115775
+Ref: Ranges and Locales-Footnote-31116010
+Node: Contributors1116231
+Node: History summary1121791
+Node: Installation1123171
+Node: Gawk Distribution1124115
+Node: Getting1124599
+Node: Extracting1125560
+Node: Distribution contents1127198
+Node: Unix Installation1133292
+Node: Quick Installation1133974
+Node: Shell Startup Files1136388
+Node: Additional Configuration Options1137466
+Node: Configuration Philosophy1139271
+Node: Non-Unix Installation1141640
+Node: PC Installation1142098
+Node: PC Binary Installation1143418
+Node: PC Compiling1145270
+Ref: PC Compiling-Footnote-11148064
+Node: PC Testing1148173
+Node: PC Using1149353
+Ref: PC Using-Footnote-11153506
+Node: Cygwin1153579
+Node: MSYS1154349
+Node: VMS Installation1154850
+Node: VMS Compilation1155641
+Ref: VMS Compilation-Footnote-11156870
+Node: VMS Dynamic Extensions1156928
+Node: VMS Installation Details1158613
+Node: VMS Running1160866
+Node: VMS GNV1165145
+Node: VMS Old Gawk1165880
+Node: Bugs1166351
+Node: Other Versions1170666
+Node: Installation summary1177250
+Node: Notes1178301
+Node: Compatibility Mode1179166
+Node: Additions1179948
+Node: Accessing The Source1180873
+Node: Adding Code1182308
+Node: New Ports1188527
+Node: Derived Files1193015
+Ref: Derived Files-Footnote-11198500
+Ref: Derived Files-Footnote-21198535
+Ref: Derived Files-Footnote-31199133
+Node: Future Extensions1199247
+Node: Implementation Limitations1199905
+Node: Extension Design1201088
+Node: Old Extension Problems1202242
+Ref: Old Extension Problems-Footnote-11203760
+Node: Extension New Mechanism Goals1203817
+Ref: Extension New Mechanism Goals-Footnote-11207181
+Node: Extension Other Design Decisions1207370
+Node: Extension Future Growth1209483
+Node: Old Extension Mechanism1210319
+Node: Notes summary1212082
+Node: Basic Concepts1213264
+Node: Basic High Level1213945
+Ref: figure-general-flow1214227
+Ref: figure-process-flow1214912
+Ref: Basic High Level-Footnote-11218213
+Node: Basic Data Typing1218398
+Node: Glossary1221726
+Node: Copying1253672
+Node: GNU Free Documentation License1291211
+Node: Index1316329

End Tag Table