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 a708ef66..eb62e782 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 Checking649592 -Ref: File Checking-Footnote-1650926 -Node: Empty Files651127 -Node: Ignoring Assigns653106 -Node: Getopt Function654656 -Ref: Getopt Function-Footnote-1666125 -Node: Passwd Functions666325 -Ref: Passwd Functions-Footnote-1675164 -Node: Group Functions675252 -Ref: Group Functions-Footnote-1683149 -Node: Walking Arrays683356 -Node: Library Functions Summary686364 -Node: Library Exercises687770 -Node: Sample Programs688235 -Node: Running Examples689005 -Node: Clones689733 -Node: Cut Program690957 -Node: Egrep Program700886 -Ref: Egrep Program-Footnote-1708398 -Node: Id Program708508 -Node: Split Program712188 -Ref: Split Program-Footnote-1715647 -Node: Tee Program715776 -Node: Uniq Program718566 -Node: Wc Program725992 -Ref: Wc Program-Footnote-1730247 -Node: Miscellaneous Programs730341 -Node: Dupword Program731554 -Node: Alarm Program733584 -Node: Translate Program738439 -Ref: Translate Program-Footnote-1743004 -Node: Labels Program743274 -Ref: Labels Program-Footnote-1746625 -Node: Word Sorting746709 -Node: History Sorting750781 -Node: Extract Program752616 -Node: Simple Sed760145 -Node: Igawk Program763219 -Ref: Igawk Program-Footnote-1777550 -Ref: Igawk Program-Footnote-2777752 -Ref: Igawk Program-Footnote-3777874 -Node: Anagram Program777989 -Node: Signature Program781051 -Node: Programs Summary782298 -Node: Programs Exercises783512 -Ref: Programs Exercises-Footnote-1787641 -Node: Advanced Features787732 -Node: Nondecimal Data789722 -Node: Array Sorting791313 -Node: Controlling Array Traversal792013 -Ref: Controlling Array Traversal-Footnote-1800380 -Node: Array Sorting Functions800498 -Ref: Array Sorting Functions-Footnote-1805589 -Node: Two-way I/O805785 -Ref: Two-way I/O-Footnote-1812335 -Ref: Two-way I/O-Footnote-2812522 -Node: TCP/IP Networking812604 -Node: Profiling815722 -Ref: Profiling-Footnote-1824215 -Node: Advanced Features Summary824538 -Node: Internationalization826382 -Node: I18N and L10N827862 -Node: Explaining gettext828549 -Ref: Explaining gettext-Footnote-1834441 -Ref: Explaining gettext-Footnote-2834626 -Node: Programmer i18n834791 -Ref: Programmer i18n-Footnote-1839646 -Node: Translator i18n839695 -Node: String Extraction840489 -Ref: String Extraction-Footnote-1841621 -Node: Printf Ordering841707 -Ref: Printf Ordering-Footnote-1844493 -Node: I18N Portability844557 -Ref: I18N Portability-Footnote-1847013 -Node: I18N Example847076 -Ref: I18N Example-Footnote-1849882 -Node: Gawk I18N849955 -Node: I18N Summary850600 -Node: Debugger851941 -Node: Debugging852963 -Node: Debugging Concepts853404 -Node: Debugging Terms855213 -Node: Awk Debugging857788 -Node: Sample Debugging Session858694 -Node: Debugger Invocation859228 -Node: Finding The Bug860614 -Node: List of Debugger Commands867092 -Node: Breakpoint Control868425 -Node: Debugger Execution Control872119 -Node: Viewing And Changing Data875481 -Node: Execution Stack878855 -Node: Debugger Info880492 -Node: Miscellaneous Debugger Commands884563 -Node: Readline Support889651 -Node: Limitations890547 -Ref: Limitations-Footnote-1894778 -Node: Debugging Summary894829 -Node: Arbitrary Precision Arithmetic896108 -Node: Computer Arithmetic897524 -Ref: table-numeric-ranges901115 -Ref: Computer Arithmetic-Footnote-1901837 -Node: Math Definitions901894 -Ref: table-ieee-formats905208 -Ref: Math Definitions-Footnote-1905811 -Node: MPFR features905916 -Node: FP Math Caution907633 -Ref: FP Math Caution-Footnote-1908705 -Node: Inexactness of computations909074 -Node: Inexact representation910034 -Node: Comparing FP Values911394 -Node: Errors accumulate912476 -Node: Getting Accuracy913909 -Node: Try To Round916619 -Node: Setting precision917518 -Ref: table-predefined-precision-strings918215 -Node: Setting the rounding mode920045 -Ref: table-gawk-rounding-modes920419 -Ref: Setting the rounding mode-Footnote-1923827 -Node: Arbitrary Precision Integers924006 -Ref: Arbitrary Precision Integers-Footnote-1928923 -Node: POSIX Floating Point Problems929072 -Ref: POSIX Floating Point Problems-Footnote-1932954 -Node: Floating point summary932992 -Node: Dynamic Extensions935182 -Node: Extension Intro936735 -Node: Plugin License938001 -Node: Extension Mechanism Outline938798 -Ref: figure-load-extension939237 -Ref: figure-register-new-function940802 -Ref: figure-call-new-function941894 -Node: Extension API Description943956 -Node: Extension API Functions Introduction945488 -Node: General Data Types950347 -Ref: General Data Types-Footnote-1956302 -Node: Memory Allocation Functions956601 -Ref: Memory Allocation Functions-Footnote-1959446 -Node: Constructor Functions959545 -Node: Registration Functions961290 -Node: Extension Functions961975 -Node: Exit Callback Functions964598 -Node: Extension Version String965848 -Node: Input Parsers966511 -Node: Output Wrappers976393 -Node: Two-way processors980905 -Node: Printing Messages983170 -Ref: Printing Messages-Footnote-1984341 -Node: Updating ERRNO984494 -Node: Requesting Values985233 -Ref: table-value-types-returned985970 -Node: Accessing Parameters986853 -Node: Symbol Table Access988088 -Node: Symbol table by name988600 -Node: Symbol table by cookie990621 -Ref: Symbol table by cookie-Footnote-1994773 -Node: Cached values994837 -Ref: Cached values-Footnote-1998344 -Node: Array Manipulation998435 -Ref: Array Manipulation-Footnote-1999526 -Node: Array Data Types999563 -Ref: Array Data Types-Footnote-11002221 -Node: Array Functions1002313 -Node: Flattening Arrays1006171 -Node: Creating Arrays1013079 -Node: Redirection API1017848 -Node: Extension API Variables1020679 -Node: Extension Versioning1021312 -Ref: gawk-api-version1021749 -Node: Extension API Informational Variables1023505 -Node: Extension API Boilerplate1024569 -Node: Finding Extensions1028383 -Node: Extension Example1028942 -Node: Internal File Description1029740 -Node: Internal File Ops1033820 -Ref: Internal File Ops-Footnote-11045582 -Node: Using Internal File Ops1045722 -Ref: Using Internal File Ops-Footnote-11048105 -Node: Extension Samples1048379 -Node: Extension Sample File Functions1049908 -Node: Extension Sample Fnmatch1057557 -Node: Extension Sample Fork1059044 -Node: Extension Sample Inplace1060262 -Node: Extension Sample Ord1063472 -Node: Extension Sample Readdir1064308 -Ref: table-readdir-file-types1065197 -Node: Extension Sample Revout1066002 -Node: Extension Sample Rev2way1066591 -Node: Extension Sample Read write array1067331 -Node: Extension Sample Readfile1069273 -Node: Extension Sample Time1070368 -Node: Extension Sample API Tests1071716 -Node: gawkextlib1072208 -Node: Extension summary1074655 -Node: Extension Exercises1078357 -Node: Language History1079855 -Node: V7/SVR3.11081511 -Node: SVR41083663 -Node: POSIX1085097 -Node: BTL1086476 -Node: POSIX/GNU1087205 -Node: Feature History1093067 -Node: Common Extensions1107437 -Node: Ranges and Locales1108720 -Ref: Ranges and Locales-Footnote-11113336 -Ref: Ranges and Locales-Footnote-21113363 -Ref: Ranges and Locales-Footnote-31113598 -Node: Contributors1113819 -Node: History summary1119379 -Node: Installation1120759 -Node: Gawk Distribution1121703 -Node: Getting1122187 -Node: Extracting1123148 -Node: Distribution contents1124786 -Node: Unix Installation1130880 -Node: Quick Installation1131562 -Node: Shell Startup Files1133976 -Node: Additional Configuration Options1135054 -Node: Configuration Philosophy1136859 -Node: Non-Unix Installation1139228 -Node: PC Installation1139686 -Node: PC Binary Installation1141006 -Node: PC Compiling1142858 -Ref: PC Compiling-Footnote-11145652 -Node: PC Testing1145761 -Node: PC Using1146941 -Ref: PC Using-Footnote-11151094 -Node: Cygwin1151167 -Node: MSYS1151937 -Node: VMS Installation1152438 -Node: VMS Compilation1153229 -Ref: VMS Compilation-Footnote-11154458 -Node: VMS Dynamic Extensions1154516 -Node: VMS Installation Details1156201 -Node: VMS Running1158454 -Node: VMS GNV1162733 -Node: VMS Old Gawk1163468 -Node: Bugs1163939 -Node: Other Versions1168254 -Node: Installation summary1174838 -Node: Notes1175889 -Node: Compatibility Mode1176754 -Node: Additions1177536 -Node: Accessing The Source1178461 -Node: Adding Code1179896 -Node: New Ports1186115 -Node: Derived Files1190603 -Ref: Derived Files-Footnote-11196088 -Ref: Derived Files-Footnote-21196123 -Ref: Derived Files-Footnote-31196721 -Node: Future Extensions1196835 -Node: Implementation Limitations1197493 -Node: Extension Design1198676 -Node: Old Extension Problems1199830 -Ref: Old Extension Problems-Footnote-11201348 -Node: Extension New Mechanism Goals1201405 -Ref: Extension New Mechanism Goals-Footnote-11204769 -Node: Extension Other Design Decisions1204958 -Node: Extension Future Growth1207071 -Node: Old Extension Mechanism1207907 -Node: Notes summary1209670 -Node: Basic Concepts1210852 -Node: Basic High Level1211533 -Ref: figure-general-flow1211815 -Ref: figure-process-flow1212500 -Ref: Basic High Level-Footnote-11215801 -Node: Basic Data Typing1215986 -Node: Glossary1219314 -Node: Copying1251261 -Node: GNU Free Documentation License1288800 -Node: Index1313918 +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 Checking652005 +Ref: File Checking-Footnote-1653339 +Node: Empty Files653540 +Node: Ignoring Assigns655519 +Node: Getopt Function657069 +Ref: Getopt Function-Footnote-1668538 +Node: Passwd Functions668738 +Ref: Passwd Functions-Footnote-1677577 +Node: Group Functions677665 +Ref: Group Functions-Footnote-1685562 +Node: Walking Arrays685769 +Node: Library Functions Summary688777 +Node: Library Exercises690183 +Node: Sample Programs690648 +Node: Running Examples691418 +Node: Clones692146 +Node: Cut Program693370 +Node: Egrep Program703299 +Ref: Egrep Program-Footnote-1710811 +Node: Id Program710921 +Node: Split Program714601 +Ref: Split Program-Footnote-1718060 +Node: Tee Program718189 +Node: Uniq Program720979 +Node: Wc Program728405 +Ref: Wc Program-Footnote-1732660 +Node: Miscellaneous Programs732754 +Node: Dupword Program733967 +Node: Alarm Program735997 +Node: Translate Program740852 +Ref: Translate Program-Footnote-1745417 +Node: Labels Program745687 +Ref: Labels Program-Footnote-1749038 +Node: Word Sorting749122 +Node: History Sorting753194 +Node: Extract Program755029 +Node: Simple Sed762558 +Node: Igawk Program765632 +Ref: Igawk Program-Footnote-1779963 +Ref: Igawk Program-Footnote-2780165 +Ref: Igawk Program-Footnote-3780287 +Node: Anagram Program780402 +Node: Signature Program783464 +Node: Programs Summary784711 +Node: Programs Exercises785925 +Ref: Programs Exercises-Footnote-1790054 +Node: Advanced Features790145 +Node: Nondecimal Data792135 +Node: Array Sorting793726 +Node: Controlling Array Traversal794426 +Ref: Controlling Array Traversal-Footnote-1802793 +Node: Array Sorting Functions802911 +Ref: Array Sorting Functions-Footnote-1808002 +Node: Two-way I/O808198 +Ref: Two-way I/O-Footnote-1814748 +Ref: Two-way I/O-Footnote-2814935 +Node: TCP/IP Networking815017 +Node: Profiling818135 +Ref: Profiling-Footnote-1826628 +Node: Advanced Features Summary826951 +Node: Internationalization828795 +Node: I18N and L10N830275 +Node: Explaining gettext830962 +Ref: Explaining gettext-Footnote-1836854 +Ref: Explaining gettext-Footnote-2837039 +Node: Programmer i18n837204 +Ref: Programmer i18n-Footnote-1842059 +Node: Translator i18n842108 +Node: String Extraction842902 +Ref: String Extraction-Footnote-1844034 +Node: Printf Ordering844120 +Ref: Printf Ordering-Footnote-1846906 +Node: I18N Portability846970 +Ref: I18N Portability-Footnote-1849426 +Node: I18N Example849489 +Ref: I18N Example-Footnote-1852295 +Node: Gawk I18N852368 +Node: I18N Summary853013 +Node: Debugger854354 +Node: Debugging855376 +Node: Debugging Concepts855817 +Node: Debugging Terms857626 +Node: Awk Debugging860201 +Node: Sample Debugging Session861107 +Node: Debugger Invocation861641 +Node: Finding The Bug863027 +Node: List of Debugger Commands869505 +Node: Breakpoint Control870838 +Node: Debugger Execution Control874532 +Node: Viewing And Changing Data877894 +Node: Execution Stack881268 +Node: Debugger Info882905 +Node: Miscellaneous Debugger Commands886976 +Node: Readline Support892064 +Node: Limitations892960 +Ref: Limitations-Footnote-1897191 +Node: Debugging Summary897242 +Node: Arbitrary Precision Arithmetic898521 +Node: Computer Arithmetic899937 +Ref: table-numeric-ranges903528 +Ref: Computer Arithmetic-Footnote-1904250 +Node: Math Definitions904307 +Ref: table-ieee-formats907621 +Ref: Math Definitions-Footnote-1908224 +Node: MPFR features908329 +Node: FP Math Caution910046 +Ref: FP Math Caution-Footnote-1911118 +Node: Inexactness of computations911487 +Node: Inexact representation912447 +Node: Comparing FP Values913807 +Node: Errors accumulate914889 +Node: Getting Accuracy916322 +Node: Try To Round919032 +Node: Setting precision919931 +Ref: table-predefined-precision-strings920628 +Node: Setting the rounding mode922458 +Ref: table-gawk-rounding-modes922832 +Ref: Setting the rounding mode-Footnote-1926240 +Node: Arbitrary Precision Integers926419 +Ref: Arbitrary Precision Integers-Footnote-1931336 +Node: POSIX Floating Point Problems931485 +Ref: POSIX Floating Point Problems-Footnote-1935367 +Node: Floating point summary935405 +Node: Dynamic Extensions937595 +Node: Extension Intro939148 +Node: Plugin License940414 +Node: Extension Mechanism Outline941211 +Ref: figure-load-extension941650 +Ref: figure-register-new-function943215 +Ref: figure-call-new-function944307 +Node: Extension API Description946369 +Node: Extension API Functions Introduction947901 +Node: General Data Types952760 +Ref: General Data Types-Footnote-1958715 +Node: Memory Allocation Functions959014 +Ref: Memory Allocation Functions-Footnote-1961859 +Node: Constructor Functions961958 +Node: Registration Functions963703 +Node: Extension Functions964388 +Node: Exit Callback Functions967011 +Node: Extension Version String968261 +Node: Input Parsers968924 +Node: Output Wrappers978806 +Node: Two-way processors983318 +Node: Printing Messages985583 +Ref: Printing Messages-Footnote-1986754 +Node: Updating ERRNO986907 +Node: Requesting Values987646 +Ref: table-value-types-returned988383 +Node: Accessing Parameters989266 +Node: Symbol Table Access990501 +Node: Symbol table by name991013 +Node: Symbol table by cookie993034 +Ref: Symbol table by cookie-Footnote-1997186 +Node: Cached values997250 +Ref: Cached values-Footnote-11000757 +Node: Array Manipulation1000848 +Ref: Array Manipulation-Footnote-11001939 +Node: Array Data Types1001976 +Ref: Array Data Types-Footnote-11004634 +Node: Array Functions1004726 +Node: Flattening Arrays1008584 +Node: Creating Arrays1015492 +Node: Redirection API1020261 +Node: Extension API Variables1023092 +Node: Extension Versioning1023725 +Ref: gawk-api-version1024162 +Node: Extension API Informational Variables1025918 +Node: Extension API Boilerplate1026982 +Node: Finding Extensions1030796 +Node: Extension Example1031355 +Node: Internal File Description1032153 +Node: Internal File Ops1036233 +Ref: Internal File Ops-Footnote-11047995 +Node: Using Internal File Ops1048135 +Ref: Using Internal File Ops-Footnote-11050518 +Node: Extension Samples1050792 +Node: Extension Sample File Functions1052321 +Node: Extension Sample Fnmatch1059970 +Node: Extension Sample Fork1061457 +Node: Extension Sample Inplace1062675 +Node: Extension Sample Ord1065885 +Node: Extension Sample Readdir1066721 +Ref: table-readdir-file-types1067610 +Node: Extension Sample Revout1068415 +Node: Extension Sample Rev2way1069004 +Node: Extension Sample Read write array1069744 +Node: Extension Sample Readfile1071686 +Node: Extension Sample Time1072781 +Node: Extension Sample API Tests1074129 +Node: gawkextlib1074621 +Node: Extension summary1077068 +Node: Extension Exercises1080770 +Node: Language History1082268 +Node: V7/SVR3.11083924 +Node: SVR41086076 +Node: POSIX1087510 +Node: BTL1088889 +Node: POSIX/GNU1089618 +Node: Feature History1095480 +Node: Common Extensions1109850 +Node: Ranges and Locales1111133 +Ref: Ranges and Locales-Footnote-11115749 +Ref: Ranges and Locales-Footnote-21115776 +Ref: Ranges and Locales-Footnote-31116011 +Node: Contributors1116232 +Node: History summary1121792 +Node: Installation1123172 +Node: Gawk Distribution1124116 +Node: Getting1124600 +Node: Extracting1125561 +Node: Distribution contents1127199 +Node: Unix Installation1133293 +Node: Quick Installation1133975 +Node: Shell Startup Files1136389 +Node: Additional Configuration Options1137467 +Node: Configuration Philosophy1139272 +Node: Non-Unix Installation1141641 +Node: PC Installation1142099 +Node: PC Binary Installation1143419 +Node: PC Compiling1145271 +Ref: PC Compiling-Footnote-11148065 +Node: PC Testing1148174 +Node: PC Using1149354 +Ref: PC Using-Footnote-11153507 +Node: Cygwin1153580 +Node: MSYS1154350 +Node: VMS Installation1154851 +Node: VMS Compilation1155642 +Ref: VMS Compilation-Footnote-11156871 +Node: VMS Dynamic Extensions1156929 +Node: VMS Installation Details1158614 +Node: VMS Running1160867 +Node: VMS GNV1165146 +Node: VMS Old Gawk1165881 +Node: Bugs1166352 +Node: Other Versions1170667 +Node: Installation summary1177251 +Node: Notes1178302 +Node: Compatibility Mode1179167 +Node: Additions1179949 +Node: Accessing The Source1180874 +Node: Adding Code1182309 +Node: New Ports1188528 +Node: Derived Files1193016 +Ref: Derived Files-Footnote-11198501 +Ref: Derived Files-Footnote-21198536 +Ref: Derived Files-Footnote-31199134 +Node: Future Extensions1199248 +Node: Implementation Limitations1199906 +Node: Extension Design1201089 +Node: Old Extension Problems1202243 +Ref: Old Extension Problems-Footnote-11203761 +Node: Extension New Mechanism Goals1203818 +Ref: Extension New Mechanism Goals-Footnote-11207182 +Node: Extension Other Design Decisions1207371 +Node: Extension Future Growth1209484 +Node: Old Extension Mechanism1210320 +Node: Notes summary1212083 +Node: Basic Concepts1213265 +Node: Basic High Level1213946 +Ref: figure-general-flow1214228 +Ref: figure-process-flow1214913 +Ref: Basic High Level-Footnote-11218214 +Node: Basic Data Typing1218399 +Node: Glossary1221727 +Node: Copying1253674 +Node: GNU Free Documentation License1291213 +Node: Index1316331 End Tag Table |