diff options
Diffstat (limited to 'doc/gawk.info')
-rw-r--r-- | doc/gawk.info | 1052 |
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 |