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