aboutsummaryrefslogtreecommitdiffstats
path: root/doc/gawk.info
diff options
context:
space:
mode:
Diffstat (limited to 'doc/gawk.info')
-rw-r--r--doc/gawk.info1052
1 files changed, 554 insertions, 498 deletions
diff --git a/doc/gawk.info b/doc/gawk.info
index 3c68a117..72703060 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -4139,6 +4139,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
@@ -4176,6 +4224,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
@@ -13570,6 +13621,10 @@ contexts.
'"array"'
X is an array.
+ '"regexp"'
+ X is a strongly typed regexp (*note Strong Regexp
+ Constants::).
+
'"number"'
X is a number.
@@ -13616,7 +13671,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
@@ -35379,502 +35435,502 @@ Node: Case-sensitivity186200
Ref: Case-sensitivity-Footnote-1189096
Ref: Case-sensitivity-Footnote-2189331
Node: Strong Regexp Constants189439
-Node: Regexp Summary190228
-Node: Reading Files191703
-Node: Records193866
-Node: awk split records194599
-Node: gawk split records199530
-Ref: gawk split records-Footnote-1204070
-Node: Fields204107
-Node: Nonconstant Fields206848
-Ref: Nonconstant Fields-Footnote-1209084
-Node: Changing Fields209288
-Node: Field Separators215216
-Node: Default Field Splitting217914
-Node: Regexp Field Splitting219032
-Node: Single Character Fields222385
-Node: Command Line Field Separator223445
-Node: Full Line Fields226663
-Ref: Full Line Fields-Footnote-1228185
-Ref: Full Line Fields-Footnote-2228231
-Node: Field Splitting Summary228332
-Node: Constant Size230406
-Node: Splitting By Content234984
-Ref: Splitting By Content-Footnote-1238955
-Node: Multiple Line239118
-Ref: Multiple Line-Footnote-1245000
-Node: Getline245179
-Node: Plain Getline247646
-Node: Getline/Variable250285
-Node: Getline/File251434
-Node: Getline/Variable/File252820
-Ref: Getline/Variable/File-Footnote-1254423
-Node: Getline/Pipe254511
-Node: Getline/Variable/Pipe257216
-Node: Getline/Coprocess258349
-Node: Getline/Variable/Coprocess259614
-Node: Getline Notes260354
-Node: Getline Summary263149
-Ref: table-getline-variants263571
-Node: Read Timeout264319
-Ref: Read Timeout-Footnote-1268225
-Node: Retrying Input268283
-Node: Command-line directories269482
-Node: Input Summary270388
-Node: Input Exercises273560
-Node: Printing274288
-Node: Print276122
-Node: Print Examples277579
-Node: Output Separators280359
-Node: OFMT282376
-Node: Printf283732
-Node: Basic Printf284517
-Node: Control Letters286091
-Node: Format Modifiers290079
-Node: Printf Examples296094
-Node: Redirection298580
-Node: Special FD305421
-Ref: Special FD-Footnote-1308589
-Node: Special Files308663
-Node: Other Inherited Files309280
-Node: Special Network310281
-Node: Special Caveats311141
-Node: Close Files And Pipes312090
-Ref: table-close-pipe-return-values318997
-Ref: Close Files And Pipes-Footnote-1319780
-Ref: Close Files And Pipes-Footnote-2319928
-Node: Nonfatal320080
-Node: Output Summary322405
-Node: Output Exercises323627
-Node: Expressions324306
-Node: Values325494
-Node: Constants326172
-Node: Scalar Constants326863
-Ref: Scalar Constants-Footnote-1327727
-Node: Nondecimal-numbers327977
-Node: Regexp Constants330990
-Node: Using Constant Regexps331516
-Node: Variables334679
-Node: Using Variables335336
-Node: Assignment Options337246
-Node: Conversion339119
-Node: Strings And Numbers339643
-Ref: Strings And Numbers-Footnote-1342706
-Node: Locale influences conversions342815
-Ref: table-locale-affects345573
-Node: All Operators346191
-Node: Arithmetic Ops346820
-Node: Concatenation349326
-Ref: Concatenation-Footnote-1352173
-Node: Assignment Ops352280
-Ref: table-assign-ops357271
-Node: Increment Ops358584
-Node: Truth Values and Conditions362044
-Node: Truth Values363118
-Node: Typing and Comparison364166
-Node: Variable Typing364986
-Node: Comparison Operators368610
-Ref: table-relational-ops369029
-Node: POSIX String Comparison372524
-Ref: POSIX String Comparison-Footnote-1374219
-Ref: POSIX String Comparison-Footnote-2374358
-Node: Boolean Ops374442
-Ref: Boolean Ops-Footnote-1378924
-Node: Conditional Exp379016
-Node: Function Calls380752
-Node: Precedence384629
-Node: Locales388288
-Node: Expressions Summary389920
-Node: Patterns and Actions392493
-Node: Pattern Overview393613
-Node: Regexp Patterns395290
-Node: Expression Patterns395832
-Node: Ranges399613
-Node: BEGIN/END402721
-Node: Using BEGIN/END403482
-Ref: Using BEGIN/END-Footnote-1406218
-Node: I/O And BEGIN/END406324
-Node: BEGINFILE/ENDFILE408638
-Node: Empty411545
-Node: Using Shell Variables411862
-Node: Action Overview414136
-Node: Statements416461
-Node: If Statement418309
-Node: While Statement419804
-Node: Do Statement421832
-Node: For Statement422980
-Node: Switch Statement426138
-Node: Break Statement428524
-Node: Continue Statement430616
-Node: Next Statement432443
-Node: Nextfile Statement434826
-Node: Exit Statement437478
-Node: Built-in Variables439881
-Node: User-modified441014
-Node: Auto-set448600
-Ref: Auto-set-Footnote-1463253
-Ref: Auto-set-Footnote-2463459
-Node: ARGC and ARGV463515
-Node: Pattern Action Summary467728
-Node: Arrays470158
-Node: Array Basics471487
-Node: Array Intro472331
-Ref: figure-array-elements474306
-Ref: Array Intro-Footnote-1477010
-Node: Reference to Elements477138
-Node: Assigning Elements479602
-Node: Array Example480093
-Node: Scanning an Array481852
-Node: Controlling Scanning484874
-Ref: Controlling Scanning-Footnote-1490273
-Node: Numeric Array Subscripts490589
-Node: Uninitialized Subscripts492773
-Node: Delete494392
-Ref: Delete-Footnote-1497144
-Node: Multidimensional497201
-Node: Multiscanning500296
-Node: Arrays of Arrays501887
-Node: Arrays Summary506654
-Node: Functions508747
-Node: Built-in509785
-Node: Calling Built-in510866
-Node: Numeric Functions512862
-Ref: Numeric Functions-Footnote-1517695
-Ref: Numeric Functions-Footnote-2518052
-Ref: Numeric Functions-Footnote-3518100
-Node: String Functions518372
-Ref: String Functions-Footnote-1541876
-Ref: String Functions-Footnote-2542004
-Ref: String Functions-Footnote-3542252
-Node: Gory Details542339
-Ref: table-sub-escapes544130
-Ref: table-sub-proposed545649
-Ref: table-posix-sub547012
-Ref: table-gensub-escapes548553
-Ref: Gory Details-Footnote-1549376
-Node: I/O Functions549530
-Ref: table-system-return-values556112
-Ref: I/O Functions-Footnote-1558092
-Ref: I/O Functions-Footnote-2558240
-Node: Time Functions558360
-Ref: Time Functions-Footnote-1568882
-Ref: Time Functions-Footnote-2568950
-Ref: Time Functions-Footnote-3569108
-Ref: Time Functions-Footnote-4569219
-Ref: Time Functions-Footnote-5569331
-Ref: Time Functions-Footnote-6569558
-Node: Bitwise Functions569824
-Ref: table-bitwise-ops570418
-Ref: Bitwise Functions-Footnote-1574756
-Node: Type Functions574929
-Node: I18N Functions577461
-Node: User-defined579112
-Node: Definition Syntax579917
-Ref: Definition Syntax-Footnote-1585604
-Node: Function Example585675
-Ref: Function Example-Footnote-1588597
-Node: Function Caveats588619
-Node: Calling A Function589137
-Node: Variable Scope590095
-Node: Pass By Value/Reference593089
-Node: Return Statement596588
-Node: Dynamic Typing599567
-Node: Indirect Calls600497
-Ref: Indirect Calls-Footnote-1610748
-Node: Functions Summary610876
-Node: Library Functions613581
-Ref: Library Functions-Footnote-1617188
-Ref: Library Functions-Footnote-2617331
-Node: Library Names617502
-Ref: Library Names-Footnote-1620962
-Ref: Library Names-Footnote-2621185
-Node: General Functions621271
-Node: Strtonum Function622374
-Node: Assert Function625396
-Node: Round Function628722
-Node: Cliff Random Function630263
-Node: Ordinal Functions631279
-Ref: Ordinal Functions-Footnote-1634342
-Ref: Ordinal Functions-Footnote-2634594
-Node: Join Function634804
-Ref: Join Function-Footnote-1636574
-Node: Getlocaltime Function636774
-Node: Readfile Function640516
-Node: Shell Quoting642488
-Node: Data File Management643889
-Node: Filetrans Function644521
-Node: Rewind Function648617
-Node: File Checking650523
-Ref: File Checking-Footnote-1651857
-Node: Empty Files652058
-Node: Ignoring Assigns654037
-Node: Getopt Function655587
-Ref: Getopt Function-Footnote-1667056
-Node: Passwd Functions667256
-Ref: Passwd Functions-Footnote-1676095
-Node: Group Functions676183
-Ref: Group Functions-Footnote-1684081
-Node: Walking Arrays684288
-Node: Library Functions Summary687296
-Node: Library Exercises688702
-Node: Sample Programs689167
-Node: Running Examples689937
-Node: Clones690665
-Node: Cut Program691889
-Node: Egrep Program701818
-Ref: Egrep Program-Footnote-1709330
-Node: Id Program709440
-Node: Split Program713120
-Ref: Split Program-Footnote-1716579
-Node: Tee Program716708
-Node: Uniq Program719498
-Node: Wc Program726924
-Ref: Wc Program-Footnote-1731179
-Node: Miscellaneous Programs731273
-Node: Dupword Program732486
-Node: Alarm Program734516
-Node: Translate Program739371
-Ref: Translate Program-Footnote-1743936
-Node: Labels Program744206
-Ref: Labels Program-Footnote-1747557
-Node: Word Sorting747641
-Node: History Sorting751713
-Node: Extract Program753548
-Node: Simple Sed761077
-Node: Igawk Program764151
-Ref: Igawk Program-Footnote-1778482
-Ref: Igawk Program-Footnote-2778684
-Ref: Igawk Program-Footnote-3778806
-Node: Anagram Program778921
-Node: Signature Program781983
-Node: Programs Summary783230
-Node: Programs Exercises784444
-Ref: Programs Exercises-Footnote-1788573
-Node: Advanced Features788664
-Node: Nondecimal Data790654
-Node: Array Sorting792245
-Node: Controlling Array Traversal792945
-Ref: Controlling Array Traversal-Footnote-1801312
-Node: Array Sorting Functions801430
-Ref: Array Sorting Functions-Footnote-1806521
-Node: Two-way I/O806717
-Ref: Two-way I/O-Footnote-1813267
-Ref: Two-way I/O-Footnote-2813454
-Node: TCP/IP Networking813536
-Node: Profiling816654
-Ref: Profiling-Footnote-1825147
-Node: Advanced Features Summary825470
-Node: Internationalization827314
-Node: I18N and L10N828794
-Node: Explaining gettext829481
-Ref: Explaining gettext-Footnote-1835373
-Ref: Explaining gettext-Footnote-2835558
-Node: Programmer i18n835723
-Ref: Programmer i18n-Footnote-1840578
-Node: Translator i18n840627
-Node: String Extraction841421
-Ref: String Extraction-Footnote-1842553
-Node: Printf Ordering842639
-Ref: Printf Ordering-Footnote-1845425
-Node: I18N Portability845489
-Ref: I18N Portability-Footnote-1847945
-Node: I18N Example848008
-Ref: I18N Example-Footnote-1850814
-Node: Gawk I18N850887
-Node: I18N Summary851532
-Node: Debugger852873
-Node: Debugging853895
-Node: Debugging Concepts854336
-Node: Debugging Terms856145
-Node: Awk Debugging858720
-Node: Sample Debugging Session859626
-Node: Debugger Invocation860160
-Node: Finding The Bug861546
-Node: List of Debugger Commands868024
-Node: Breakpoint Control869357
-Node: Debugger Execution Control873051
-Node: Viewing And Changing Data876413
-Node: Execution Stack879787
-Node: Debugger Info881424
-Node: Miscellaneous Debugger Commands885495
-Node: Readline Support890583
-Node: Limitations891479
-Ref: Limitations-Footnote-1895710
-Node: Debugging Summary895761
-Node: Arbitrary Precision Arithmetic897040
-Node: Computer Arithmetic898456
-Ref: table-numeric-ranges902047
-Ref: Computer Arithmetic-Footnote-1902769
-Node: Math Definitions902826
-Ref: table-ieee-formats906140
-Ref: Math Definitions-Footnote-1906743
-Node: MPFR features906848
-Node: FP Math Caution908565
-Ref: FP Math Caution-Footnote-1909637
-Node: Inexactness of computations910006
-Node: Inexact representation910966
-Node: Comparing FP Values912326
-Node: Errors accumulate913408
-Node: Getting Accuracy914841
-Node: Try To Round917551
-Node: Setting precision918450
-Ref: table-predefined-precision-strings919147
-Node: Setting the rounding mode920977
-Ref: table-gawk-rounding-modes921351
-Ref: Setting the rounding mode-Footnote-1924759
-Node: Arbitrary Precision Integers924938
-Ref: Arbitrary Precision Integers-Footnote-1929855
-Node: POSIX Floating Point Problems930004
-Ref: POSIX Floating Point Problems-Footnote-1933886
-Node: Floating point summary933924
-Node: Dynamic Extensions936114
-Node: Extension Intro937667
-Node: Plugin License938933
-Node: Extension Mechanism Outline939730
-Ref: figure-load-extension940169
-Ref: figure-register-new-function941734
-Ref: figure-call-new-function942826
-Node: Extension API Description944888
-Node: Extension API Functions Introduction946420
-Node: General Data Types951279
-Ref: General Data Types-Footnote-1957234
-Node: Memory Allocation Functions957533
-Ref: Memory Allocation Functions-Footnote-1960378
-Node: Constructor Functions960477
-Node: Registration Functions962222
-Node: Extension Functions962907
-Node: Exit Callback Functions965530
-Node: Extension Version String966780
-Node: Input Parsers967443
-Node: Output Wrappers977325
-Node: Two-way processors981837
-Node: Printing Messages984102
-Ref: Printing Messages-Footnote-1985273
-Node: Updating ERRNO985426
-Node: Requesting Values986165
-Ref: table-value-types-returned986902
-Node: Accessing Parameters987785
-Node: Symbol Table Access989020
-Node: Symbol table by name989532
-Node: Symbol table by cookie991553
-Ref: Symbol table by cookie-Footnote-1995705
-Node: Cached values995769
-Ref: Cached values-Footnote-1999276
-Node: Array Manipulation999367
-Ref: Array Manipulation-Footnote-11000458
-Node: Array Data Types1000495
-Ref: Array Data Types-Footnote-11003153
-Node: Array Functions1003245
-Node: Flattening Arrays1007103
-Node: Creating Arrays1014011
-Node: Redirection API1018780
-Node: Extension API Variables1021611
-Node: Extension Versioning1022244
-Ref: gawk-api-version1022681
-Node: Extension API Informational Variables1024437
-Node: Extension API Boilerplate1025501
-Node: Finding Extensions1029315
-Node: Extension Example1029874
-Node: Internal File Description1030672
-Node: Internal File Ops1034752
-Ref: Internal File Ops-Footnote-11046514
-Node: Using Internal File Ops1046654
-Ref: Using Internal File Ops-Footnote-11049037
-Node: Extension Samples1049311
-Node: Extension Sample File Functions1050840
-Node: Extension Sample Fnmatch1058489
-Node: Extension Sample Fork1059976
-Node: Extension Sample Inplace1061194
-Node: Extension Sample Ord1064404
-Node: Extension Sample Readdir1065240
-Ref: table-readdir-file-types1066129
-Node: Extension Sample Revout1066934
-Node: Extension Sample Rev2way1067523
-Node: Extension Sample Read write array1068263
-Node: Extension Sample Readfile1070205
-Node: Extension Sample Time1071300
-Node: Extension Sample API Tests1072648
-Node: gawkextlib1073140
-Node: Extension summary1075587
-Node: Extension Exercises1079289
-Node: Language History1080787
-Node: V7/SVR3.11082443
-Node: SVR41084595
-Node: POSIX1086029
-Node: BTL1087408
-Node: POSIX/GNU1088137
-Node: Feature History1093999
-Node: Common Extensions1108369
-Node: Ranges and Locales1109652
-Ref: Ranges and Locales-Footnote-11114268
-Ref: Ranges and Locales-Footnote-21114295
-Ref: Ranges and Locales-Footnote-31114530
-Node: Contributors1114751
-Node: History summary1120311
-Node: Installation1121691
-Node: Gawk Distribution1122635
-Node: Getting1123119
-Node: Extracting1124080
-Node: Distribution contents1125718
-Node: Unix Installation1131812
-Node: Quick Installation1132494
-Node: Shell Startup Files1134908
-Node: Additional Configuration Options1135986
-Node: Configuration Philosophy1137791
-Node: Non-Unix Installation1140160
-Node: PC Installation1140618
-Node: PC Binary Installation1141938
-Node: PC Compiling1143790
-Ref: PC Compiling-Footnote-11146584
-Node: PC Testing1146693
-Node: PC Using1147873
-Ref: PC Using-Footnote-11152026
-Node: Cygwin1152099
-Node: MSYS1152869
-Node: VMS Installation1153370
-Node: VMS Compilation1154161
-Ref: VMS Compilation-Footnote-11155390
-Node: VMS Dynamic Extensions1155448
-Node: VMS Installation Details1157133
-Node: VMS Running1159386
-Node: VMS GNV1163665
-Node: VMS Old Gawk1164400
-Node: Bugs1164871
-Node: Bug address1165534
-Node: Usenet1167931
-Node: Maintainers1168706
-Node: Other Versions1170082
-Node: Installation summary1176666
-Node: Notes1177717
-Node: Compatibility Mode1178582
-Node: Additions1179364
-Node: Accessing The Source1180289
-Node: Adding Code1181724
-Node: New Ports1187943
-Node: Derived Files1192431
-Ref: Derived Files-Footnote-11197916
-Ref: Derived Files-Footnote-21197951
-Ref: Derived Files-Footnote-31198549
-Node: Future Extensions1198663
-Node: Implementation Limitations1199321
-Node: Extension Design1200504
-Node: Old Extension Problems1201658
-Ref: Old Extension Problems-Footnote-11203176
-Node: Extension New Mechanism Goals1203233
-Ref: Extension New Mechanism Goals-Footnote-11206597
-Node: Extension Other Design Decisions1206786
-Node: Extension Future Growth1208899
-Node: Old Extension Mechanism1209735
-Node: Notes summary1211498
-Node: Basic Concepts1212680
-Node: Basic High Level1213361
-Ref: figure-general-flow1213643
-Ref: figure-process-flow1214328
-Ref: Basic High Level-Footnote-11217629
-Node: Basic Data Typing1217814
-Node: Glossary1221142
-Node: Copying1253089
-Node: GNU Free Documentation License1290628
-Node: Index1315746
+Node: Regexp Summary192381
+Node: Reading Files193987
+Node: Records196150
+Node: awk split records196883
+Node: gawk split records201814
+Ref: gawk split records-Footnote-1206354
+Node: Fields206391
+Node: Nonconstant Fields209132
+Ref: Nonconstant Fields-Footnote-1211368
+Node: Changing Fields211572
+Node: Field Separators217500
+Node: Default Field Splitting220198
+Node: Regexp Field Splitting221316
+Node: Single Character Fields224669
+Node: Command Line Field Separator225729
+Node: Full Line Fields228947
+Ref: Full Line Fields-Footnote-1230469
+Ref: Full Line Fields-Footnote-2230515
+Node: Field Splitting Summary230616
+Node: Constant Size232690
+Node: Splitting By Content237268
+Ref: Splitting By Content-Footnote-1241239
+Node: Multiple Line241402
+Ref: Multiple Line-Footnote-1247284
+Node: Getline247463
+Node: Plain Getline249930
+Node: Getline/Variable252569
+Node: Getline/File253718
+Node: Getline/Variable/File255104
+Ref: Getline/Variable/File-Footnote-1256707
+Node: Getline/Pipe256795
+Node: Getline/Variable/Pipe259500
+Node: Getline/Coprocess260633
+Node: Getline/Variable/Coprocess261898
+Node: Getline Notes262638
+Node: Getline Summary265433
+Ref: table-getline-variants265855
+Node: Read Timeout266603
+Ref: Read Timeout-Footnote-1270509
+Node: Retrying Input270567
+Node: Command-line directories271766
+Node: Input Summary272672
+Node: Input Exercises275844
+Node: Printing276572
+Node: Print278406
+Node: Print Examples279863
+Node: Output Separators282643
+Node: OFMT284660
+Node: Printf286016
+Node: Basic Printf286801
+Node: Control Letters288375
+Node: Format Modifiers292363
+Node: Printf Examples298378
+Node: Redirection300864
+Node: Special FD307705
+Ref: Special FD-Footnote-1310873
+Node: Special Files310947
+Node: Other Inherited Files311564
+Node: Special Network312565
+Node: Special Caveats313425
+Node: Close Files And Pipes314374
+Ref: table-close-pipe-return-values321281
+Ref: Close Files And Pipes-Footnote-1322064
+Ref: Close Files And Pipes-Footnote-2322212
+Node: Nonfatal322364
+Node: Output Summary324689
+Node: Output Exercises325911
+Node: Expressions326590
+Node: Values327778
+Node: Constants328456
+Node: Scalar Constants329147
+Ref: Scalar Constants-Footnote-1330011
+Node: Nondecimal-numbers330261
+Node: Regexp Constants333274
+Node: Using Constant Regexps333800
+Node: Variables336963
+Node: Using Variables337620
+Node: Assignment Options339530
+Node: Conversion341403
+Node: Strings And Numbers341927
+Ref: Strings And Numbers-Footnote-1344990
+Node: Locale influences conversions345099
+Ref: table-locale-affects347857
+Node: All Operators348475
+Node: Arithmetic Ops349104
+Node: Concatenation351610
+Ref: Concatenation-Footnote-1354457
+Node: Assignment Ops354564
+Ref: table-assign-ops359555
+Node: Increment Ops360868
+Node: Truth Values and Conditions364328
+Node: Truth Values365402
+Node: Typing and Comparison366450
+Node: Variable Typing367270
+Node: Comparison Operators370894
+Ref: table-relational-ops371313
+Node: POSIX String Comparison374808
+Ref: POSIX String Comparison-Footnote-1376503
+Ref: POSIX String Comparison-Footnote-2376642
+Node: Boolean Ops376726
+Ref: Boolean Ops-Footnote-1381208
+Node: Conditional Exp381300
+Node: Function Calls383036
+Node: Precedence386913
+Node: Locales390572
+Node: Expressions Summary392204
+Node: Patterns and Actions394777
+Node: Pattern Overview395897
+Node: Regexp Patterns397574
+Node: Expression Patterns398116
+Node: Ranges401897
+Node: BEGIN/END405005
+Node: Using BEGIN/END405766
+Ref: Using BEGIN/END-Footnote-1408502
+Node: I/O And BEGIN/END408608
+Node: BEGINFILE/ENDFILE410922
+Node: Empty413829
+Node: Using Shell Variables414146
+Node: Action Overview416420
+Node: Statements418745
+Node: If Statement420593
+Node: While Statement422088
+Node: Do Statement424116
+Node: For Statement425264
+Node: Switch Statement428422
+Node: Break Statement430808
+Node: Continue Statement432900
+Node: Next Statement434727
+Node: Nextfile Statement437110
+Node: Exit Statement439762
+Node: Built-in Variables442165
+Node: User-modified443298
+Node: Auto-set450884
+Ref: Auto-set-Footnote-1465537
+Ref: Auto-set-Footnote-2465743
+Node: ARGC and ARGV465799
+Node: Pattern Action Summary470012
+Node: Arrays472442
+Node: Array Basics473771
+Node: Array Intro474615
+Ref: figure-array-elements476590
+Ref: Array Intro-Footnote-1479294
+Node: Reference to Elements479422
+Node: Assigning Elements481886
+Node: Array Example482377
+Node: Scanning an Array484136
+Node: Controlling Scanning487158
+Ref: Controlling Scanning-Footnote-1492557
+Node: Numeric Array Subscripts492873
+Node: Uninitialized Subscripts495057
+Node: Delete496676
+Ref: Delete-Footnote-1499428
+Node: Multidimensional499485
+Node: Multiscanning502580
+Node: Arrays of Arrays504171
+Node: Arrays Summary508938
+Node: Functions511031
+Node: Built-in512069
+Node: Calling Built-in513150
+Node: Numeric Functions515146
+Ref: Numeric Functions-Footnote-1519979
+Ref: Numeric Functions-Footnote-2520336
+Ref: Numeric Functions-Footnote-3520384
+Node: String Functions520656
+Ref: String Functions-Footnote-1544160
+Ref: String Functions-Footnote-2544288
+Ref: String Functions-Footnote-3544536
+Node: Gory Details544623
+Ref: table-sub-escapes546414
+Ref: table-sub-proposed547933
+Ref: table-posix-sub549296
+Ref: table-gensub-escapes550837
+Ref: Gory Details-Footnote-1551660
+Node: I/O Functions551814
+Ref: table-system-return-values558396
+Ref: I/O Functions-Footnote-1560376
+Ref: I/O Functions-Footnote-2560524
+Node: Time Functions560644
+Ref: Time Functions-Footnote-1571166
+Ref: Time Functions-Footnote-2571234
+Ref: Time Functions-Footnote-3571392
+Ref: Time Functions-Footnote-4571503
+Ref: Time Functions-Footnote-5571615
+Ref: Time Functions-Footnote-6571842
+Node: Bitwise Functions572108
+Ref: table-bitwise-ops572702
+Ref: Bitwise Functions-Footnote-1577040
+Node: Type Functions577213
+Node: I18N Functions579874
+Node: User-defined581525
+Node: Definition Syntax582330
+Ref: Definition Syntax-Footnote-1588017
+Node: Function Example588088
+Ref: Function Example-Footnote-1591010
+Node: Function Caveats591032
+Node: Calling A Function591550
+Node: Variable Scope592508
+Node: Pass By Value/Reference595502
+Node: Return Statement599001
+Node: Dynamic Typing601980
+Node: Indirect Calls602910
+Ref: Indirect Calls-Footnote-1613161
+Node: Functions Summary613289
+Node: Library Functions615994
+Ref: Library Functions-Footnote-1619601
+Ref: Library Functions-Footnote-2619744
+Node: Library Names619915
+Ref: Library Names-Footnote-1623375
+Ref: Library Names-Footnote-2623598
+Node: General Functions623684
+Node: Strtonum Function624787
+Node: Assert Function627809
+Node: Round Function631135
+Node: Cliff Random Function632676
+Node: Ordinal Functions633692
+Ref: Ordinal Functions-Footnote-1636755
+Ref: Ordinal Functions-Footnote-2637007
+Node: Join Function637217
+Ref: Join Function-Footnote-1638987
+Node: Getlocaltime Function639187
+Node: Readfile Function642929
+Node: Shell Quoting644901
+Node: Data File Management646302
+Node: Filetrans Function646934
+Node: Rewind Function651030
+Node: File Checking652936
+Ref: File Checking-Footnote-1654270
+Node: Empty Files654471
+Node: Ignoring Assigns656450
+Node: Getopt Function658000
+Ref: Getopt Function-Footnote-1669469
+Node: Passwd Functions669669
+Ref: Passwd Functions-Footnote-1678508
+Node: Group Functions678596
+Ref: Group Functions-Footnote-1686494
+Node: Walking Arrays686701
+Node: Library Functions Summary689709
+Node: Library Exercises691115
+Node: Sample Programs691580
+Node: Running Examples692350
+Node: Clones693078
+Node: Cut Program694302
+Node: Egrep Program704231
+Ref: Egrep Program-Footnote-1711743
+Node: Id Program711853
+Node: Split Program715533
+Ref: Split Program-Footnote-1718992
+Node: Tee Program719121
+Node: Uniq Program721911
+Node: Wc Program729337
+Ref: Wc Program-Footnote-1733592
+Node: Miscellaneous Programs733686
+Node: Dupword Program734899
+Node: Alarm Program736929
+Node: Translate Program741784
+Ref: Translate Program-Footnote-1746349
+Node: Labels Program746619
+Ref: Labels Program-Footnote-1749970
+Node: Word Sorting750054
+Node: History Sorting754126
+Node: Extract Program755961
+Node: Simple Sed763490
+Node: Igawk Program766564
+Ref: Igawk Program-Footnote-1780895
+Ref: Igawk Program-Footnote-2781097
+Ref: Igawk Program-Footnote-3781219
+Node: Anagram Program781334
+Node: Signature Program784396
+Node: Programs Summary785643
+Node: Programs Exercises786857
+Ref: Programs Exercises-Footnote-1790986
+Node: Advanced Features791077
+Node: Nondecimal Data793067
+Node: Array Sorting794658
+Node: Controlling Array Traversal795358
+Ref: Controlling Array Traversal-Footnote-1803725
+Node: Array Sorting Functions803843
+Ref: Array Sorting Functions-Footnote-1808934
+Node: Two-way I/O809130
+Ref: Two-way I/O-Footnote-1815680
+Ref: Two-way I/O-Footnote-2815867
+Node: TCP/IP Networking815949
+Node: Profiling819067
+Ref: Profiling-Footnote-1827560
+Node: Advanced Features Summary827883
+Node: Internationalization829727
+Node: I18N and L10N831207
+Node: Explaining gettext831894
+Ref: Explaining gettext-Footnote-1837786
+Ref: Explaining gettext-Footnote-2837971
+Node: Programmer i18n838136
+Ref: Programmer i18n-Footnote-1842991
+Node: Translator i18n843040
+Node: String Extraction843834
+Ref: String Extraction-Footnote-1844966
+Node: Printf Ordering845052
+Ref: Printf Ordering-Footnote-1847838
+Node: I18N Portability847902
+Ref: I18N Portability-Footnote-1850358
+Node: I18N Example850421
+Ref: I18N Example-Footnote-1853227
+Node: Gawk I18N853300
+Node: I18N Summary853945
+Node: Debugger855286
+Node: Debugging856308
+Node: Debugging Concepts856749
+Node: Debugging Terms858558
+Node: Awk Debugging861133
+Node: Sample Debugging Session862039
+Node: Debugger Invocation862573
+Node: Finding The Bug863959
+Node: List of Debugger Commands870437
+Node: Breakpoint Control871770
+Node: Debugger Execution Control875464
+Node: Viewing And Changing Data878826
+Node: Execution Stack882200
+Node: Debugger Info883837
+Node: Miscellaneous Debugger Commands887908
+Node: Readline Support892996
+Node: Limitations893892
+Ref: Limitations-Footnote-1898123
+Node: Debugging Summary898174
+Node: Arbitrary Precision Arithmetic899453
+Node: Computer Arithmetic900869
+Ref: table-numeric-ranges904460
+Ref: Computer Arithmetic-Footnote-1905182
+Node: Math Definitions905239
+Ref: table-ieee-formats908553
+Ref: Math Definitions-Footnote-1909156
+Node: MPFR features909261
+Node: FP Math Caution910978
+Ref: FP Math Caution-Footnote-1912050
+Node: Inexactness of computations912419
+Node: Inexact representation913379
+Node: Comparing FP Values914739
+Node: Errors accumulate915821
+Node: Getting Accuracy917254
+Node: Try To Round919964
+Node: Setting precision920863
+Ref: table-predefined-precision-strings921560
+Node: Setting the rounding mode923390
+Ref: table-gawk-rounding-modes923764
+Ref: Setting the rounding mode-Footnote-1927172
+Node: Arbitrary Precision Integers927351
+Ref: Arbitrary Precision Integers-Footnote-1932268
+Node: POSIX Floating Point Problems932417
+Ref: POSIX Floating Point Problems-Footnote-1936299
+Node: Floating point summary936337
+Node: Dynamic Extensions938527
+Node: Extension Intro940080
+Node: Plugin License941346
+Node: Extension Mechanism Outline942143
+Ref: figure-load-extension942582
+Ref: figure-register-new-function944147
+Ref: figure-call-new-function945239
+Node: Extension API Description947301
+Node: Extension API Functions Introduction948833
+Node: General Data Types953692
+Ref: General Data Types-Footnote-1959647
+Node: Memory Allocation Functions959946
+Ref: Memory Allocation Functions-Footnote-1962791
+Node: Constructor Functions962890
+Node: Registration Functions964635
+Node: Extension Functions965320
+Node: Exit Callback Functions967943
+Node: Extension Version String969193
+Node: Input Parsers969856
+Node: Output Wrappers979738
+Node: Two-way processors984250
+Node: Printing Messages986515
+Ref: Printing Messages-Footnote-1987686
+Node: Updating ERRNO987839
+Node: Requesting Values988578
+Ref: table-value-types-returned989315
+Node: Accessing Parameters990198
+Node: Symbol Table Access991433
+Node: Symbol table by name991945
+Node: Symbol table by cookie993966
+Ref: Symbol table by cookie-Footnote-1998118
+Node: Cached values998182
+Ref: Cached values-Footnote-11001689
+Node: Array Manipulation1001780
+Ref: Array Manipulation-Footnote-11002871
+Node: Array Data Types1002908
+Ref: Array Data Types-Footnote-11005566
+Node: Array Functions1005658
+Node: Flattening Arrays1009516
+Node: Creating Arrays1016424
+Node: Redirection API1021193
+Node: Extension API Variables1024024
+Node: Extension Versioning1024657
+Ref: gawk-api-version1025094
+Node: Extension API Informational Variables1026850
+Node: Extension API Boilerplate1027914
+Node: Finding Extensions1031728
+Node: Extension Example1032287
+Node: Internal File Description1033085
+Node: Internal File Ops1037165
+Ref: Internal File Ops-Footnote-11048927
+Node: Using Internal File Ops1049067
+Ref: Using Internal File Ops-Footnote-11051450
+Node: Extension Samples1051724
+Node: Extension Sample File Functions1053253
+Node: Extension Sample Fnmatch1060902
+Node: Extension Sample Fork1062389
+Node: Extension Sample Inplace1063607
+Node: Extension Sample Ord1066817
+Node: Extension Sample Readdir1067653
+Ref: table-readdir-file-types1068542
+Node: Extension Sample Revout1069347
+Node: Extension Sample Rev2way1069936
+Node: Extension Sample Read write array1070676
+Node: Extension Sample Readfile1072618
+Node: Extension Sample Time1073713
+Node: Extension Sample API Tests1075061
+Node: gawkextlib1075553
+Node: Extension summary1078000
+Node: Extension Exercises1081702
+Node: Language History1083200
+Node: V7/SVR3.11084856
+Node: SVR41087008
+Node: POSIX1088442
+Node: BTL1089821
+Node: POSIX/GNU1090550
+Node: Feature History1096412
+Node: Common Extensions1110782
+Node: Ranges and Locales1112065
+Ref: Ranges and Locales-Footnote-11116681
+Ref: Ranges and Locales-Footnote-21116708
+Ref: Ranges and Locales-Footnote-31116943
+Node: Contributors1117164
+Node: History summary1122724
+Node: Installation1124104
+Node: Gawk Distribution1125048
+Node: Getting1125532
+Node: Extracting1126493
+Node: Distribution contents1128131
+Node: Unix Installation1134225
+Node: Quick Installation1134907
+Node: Shell Startup Files1137321
+Node: Additional Configuration Options1138399
+Node: Configuration Philosophy1140204
+Node: Non-Unix Installation1142573
+Node: PC Installation1143031
+Node: PC Binary Installation1144351
+Node: PC Compiling1146203
+Ref: PC Compiling-Footnote-11148997
+Node: PC Testing1149106
+Node: PC Using1150286
+Ref: PC Using-Footnote-11154439
+Node: Cygwin1154512
+Node: MSYS1155282
+Node: VMS Installation1155783
+Node: VMS Compilation1156574
+Ref: VMS Compilation-Footnote-11157803
+Node: VMS Dynamic Extensions1157861
+Node: VMS Installation Details1159546
+Node: VMS Running1161799
+Node: VMS GNV1166078
+Node: VMS Old Gawk1166813
+Node: Bugs1167284
+Node: Bug address1167947
+Node: Usenet1170344
+Node: Maintainers1171119
+Node: Other Versions1172495
+Node: Installation summary1179079
+Node: Notes1180130
+Node: Compatibility Mode1180995
+Node: Additions1181777
+Node: Accessing The Source1182702
+Node: Adding Code1184137
+Node: New Ports1190356
+Node: Derived Files1194844
+Ref: Derived Files-Footnote-11200329
+Ref: Derived Files-Footnote-21200364
+Ref: Derived Files-Footnote-31200962
+Node: Future Extensions1201076
+Node: Implementation Limitations1201734
+Node: Extension Design1202917
+Node: Old Extension Problems1204071
+Ref: Old Extension Problems-Footnote-11205589
+Node: Extension New Mechanism Goals1205646
+Ref: Extension New Mechanism Goals-Footnote-11209010
+Node: Extension Other Design Decisions1209199
+Node: Extension Future Growth1211312
+Node: Old Extension Mechanism1212148
+Node: Notes summary1213911
+Node: Basic Concepts1215093
+Node: Basic High Level1215774
+Ref: figure-general-flow1216056
+Ref: figure-process-flow1216741
+Ref: Basic High Level-Footnote-11220042
+Node: Basic Data Typing1220227
+Node: Glossary1223555
+Node: Copying1255502
+Node: GNU Free Documentation License1293041
+Node: Index1318159

End Tag Table