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