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 1766ab94..fd3a5b8a 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-sensitivity185993 Ref: Case-sensitivity-Footnote-1188889 Ref: Case-sensitivity-Footnote-2189124 Node: Strong Regexp Constants189232 -Node: Regexp Summary190021 -Node: Reading Files191496 -Node: Records193659 -Node: awk split records194392 -Node: gawk split records199323 -Ref: gawk split records-Footnote-1203863 -Node: Fields203900 -Node: Nonconstant Fields206641 -Ref: Nonconstant Fields-Footnote-1208877 -Node: Changing Fields209081 -Node: Field Separators215009 -Node: Default Field Splitting217707 -Node: Regexp Field Splitting218825 -Node: Single Character Fields222178 -Node: Command Line Field Separator223238 -Node: Full Line Fields226456 -Ref: Full Line Fields-Footnote-1227978 -Ref: Full Line Fields-Footnote-2228024 -Node: Field Splitting Summary228125 -Node: Constant Size230199 -Node: Splitting By Content234777 -Ref: Splitting By Content-Footnote-1238748 -Node: Multiple Line238911 -Ref: Multiple Line-Footnote-1244793 -Node: Getline244972 -Node: Plain Getline247439 -Node: Getline/Variable250078 -Node: Getline/File251227 -Node: Getline/Variable/File252613 -Ref: Getline/Variable/File-Footnote-1254216 -Node: Getline/Pipe254304 -Node: Getline/Variable/Pipe257009 -Node: Getline/Coprocess258142 -Node: Getline/Variable/Coprocess259407 -Node: Getline Notes260147 -Node: Getline Summary262942 -Ref: table-getline-variants263364 -Node: Read Timeout264112 -Ref: Read Timeout-Footnote-1268018 -Node: Retrying Input268076 -Node: Command-line directories269275 -Node: Input Summary270181 -Node: Input Exercises273353 -Node: Printing274081 -Node: Print275915 -Node: Print Examples277372 -Node: Output Separators280152 -Node: OFMT282169 -Node: Printf283525 -Node: Basic Printf284310 -Node: Control Letters285884 -Node: Format Modifiers289872 -Node: Printf Examples295887 -Node: Redirection298373 -Node: Special FD305214 -Ref: Special FD-Footnote-1308382 -Node: Special Files308456 -Node: Other Inherited Files309073 -Node: Special Network310074 -Node: Special Caveats310934 -Node: Close Files And Pipes311883 -Ref: table-close-pipe-return-values318790 -Ref: Close Files And Pipes-Footnote-1319573 -Ref: Close Files And Pipes-Footnote-2319721 -Node: Nonfatal319873 -Node: Output Summary322198 -Node: Output Exercises323420 -Node: Expressions324099 -Node: Values325287 -Node: Constants325965 -Node: Scalar Constants326656 -Ref: Scalar Constants-Footnote-1327520 -Node: Nondecimal-numbers327770 -Node: Regexp Constants330783 -Node: Using Constant Regexps331309 -Node: Variables334472 -Node: Using Variables335129 -Node: Assignment Options337039 -Node: Conversion338912 -Node: Strings And Numbers339436 -Ref: Strings And Numbers-Footnote-1342499 -Node: Locale influences conversions342608 -Ref: table-locale-affects345366 -Node: All Operators345984 -Node: Arithmetic Ops346613 -Node: Concatenation349119 -Ref: Concatenation-Footnote-1351966 -Node: Assignment Ops352073 -Ref: table-assign-ops357064 -Node: Increment Ops358377 -Node: Truth Values and Conditions361837 -Node: Truth Values362911 -Node: Typing and Comparison363959 -Node: Variable Typing364779 -Node: Comparison Operators368403 -Ref: table-relational-ops368822 -Node: POSIX String Comparison372317 -Ref: POSIX String Comparison-Footnote-1373391 -Node: Boolean Ops373530 -Ref: Boolean Ops-Footnote-1378012 -Node: Conditional Exp378104 -Node: Function Calls379840 -Node: Precedence383717 -Node: Locales387376 -Node: Expressions Summary389008 -Node: Patterns and Actions391581 -Node: Pattern Overview392701 -Node: Regexp Patterns394378 -Node: Expression Patterns394920 -Node: Ranges398701 -Node: BEGIN/END401809 -Node: Using BEGIN/END402570 -Ref: Using BEGIN/END-Footnote-1405306 -Node: I/O And BEGIN/END405412 -Node: BEGINFILE/ENDFILE407726 -Node: Empty410633 -Node: Using Shell Variables410950 -Node: Action Overview413224 -Node: Statements415549 -Node: If Statement417397 -Node: While Statement418892 -Node: Do Statement420920 -Node: For Statement422068 -Node: Switch Statement425226 -Node: Break Statement427612 -Node: Continue Statement429704 -Node: Next Statement431531 -Node: Nextfile Statement433914 -Node: Exit Statement436566 -Node: Built-in Variables438969 -Node: User-modified440102 -Node: Auto-set447688 -Ref: Auto-set-Footnote-1462341 -Ref: Auto-set-Footnote-2462547 -Node: ARGC and ARGV462603 -Node: Pattern Action Summary466816 -Node: Arrays469246 -Node: Array Basics470575 -Node: Array Intro471419 -Ref: figure-array-elements473394 -Ref: Array Intro-Footnote-1476098 -Node: Reference to Elements476226 -Node: Assigning Elements478690 -Node: Array Example479181 -Node: Scanning an Array480940 -Node: Controlling Scanning483962 -Ref: Controlling Scanning-Footnote-1489361 -Node: Numeric Array Subscripts489677 -Node: Uninitialized Subscripts491861 -Node: Delete493480 -Ref: Delete-Footnote-1496232 -Node: Multidimensional496289 -Node: Multiscanning499384 -Node: Arrays of Arrays500975 -Node: Arrays Summary505742 -Node: Functions507835 -Node: Built-in508873 -Node: Calling Built-in509954 -Node: Numeric Functions511950 -Ref: Numeric Functions-Footnote-1516783 -Ref: Numeric Functions-Footnote-2517140 -Ref: Numeric Functions-Footnote-3517188 -Node: String Functions517460 -Ref: String Functions-Footnote-1540964 -Ref: String Functions-Footnote-2541092 -Ref: String Functions-Footnote-3541340 -Node: Gory Details541427 -Ref: table-sub-escapes543218 -Ref: table-sub-proposed544737 -Ref: table-posix-sub546100 -Ref: table-gensub-escapes547641 -Ref: Gory Details-Footnote-1548464 -Node: I/O Functions548618 -Ref: table-system-return-values555200 -Ref: I/O Functions-Footnote-1557180 -Ref: I/O Functions-Footnote-2557328 -Node: Time Functions557448 -Ref: Time Functions-Footnote-1567953 -Ref: Time Functions-Footnote-2568021 -Ref: Time Functions-Footnote-3568179 -Ref: Time Functions-Footnote-4568290 -Ref: Time Functions-Footnote-5568402 -Ref: Time Functions-Footnote-6568629 -Node: Bitwise Functions568895 -Ref: table-bitwise-ops569489 -Ref: Bitwise Functions-Footnote-1573827 -Node: Type Functions574000 -Node: I18N Functions576532 -Node: User-defined578183 -Node: Definition Syntax578988 -Ref: Definition Syntax-Footnote-1584675 -Node: Function Example584746 -Ref: Function Example-Footnote-1587668 -Node: Function Caveats587690 -Node: Calling A Function588208 -Node: Variable Scope589166 -Node: Pass By Value/Reference592160 -Node: Return Statement595659 -Node: Dynamic Typing598638 -Node: Indirect Calls599568 -Ref: Indirect Calls-Footnote-1609819 -Node: Functions Summary609947 -Node: Library Functions612652 -Ref: Library Functions-Footnote-1616259 -Ref: Library Functions-Footnote-2616402 -Node: Library Names616573 -Ref: Library Names-Footnote-1620033 -Ref: Library Names-Footnote-2620256 -Node: General Functions620342 -Node: Strtonum Function621445 -Node: Assert Function624467 -Node: Round Function627793 -Node: Cliff Random Function629334 -Node: Ordinal Functions630350 -Ref: Ordinal Functions-Footnote-1633413 -Ref: Ordinal Functions-Footnote-2633665 -Node: Join Function633875 -Ref: Join Function-Footnote-1635645 -Node: Getlocaltime Function635845 -Node: Readfile Function639587 -Node: Shell Quoting641559 -Node: Data File Management642960 -Node: Filetrans Function643592 -Node: Rewind Function647688 -Node: File Checking649594 -Ref: File Checking-Footnote-1650928 -Node: Empty Files651129 -Node: Ignoring Assigns653108 -Node: Getopt Function654658 -Ref: Getopt Function-Footnote-1666127 -Node: Passwd Functions666327 -Ref: Passwd Functions-Footnote-1675166 -Node: Group Functions675254 -Ref: Group Functions-Footnote-1683151 -Node: Walking Arrays683358 -Node: Library Functions Summary686366 -Node: Library Exercises687772 -Node: Sample Programs688237 -Node: Running Examples689007 -Node: Clones689735 -Node: Cut Program690959 -Node: Egrep Program700888 -Ref: Egrep Program-Footnote-1708400 -Node: Id Program708510 -Node: Split Program712190 -Ref: Split Program-Footnote-1715649 -Node: Tee Program715778 -Node: Uniq Program718568 -Node: Wc Program725994 -Ref: Wc Program-Footnote-1730249 -Node: Miscellaneous Programs730343 -Node: Dupword Program731556 -Node: Alarm Program733586 -Node: Translate Program738441 -Ref: Translate Program-Footnote-1743006 -Node: Labels Program743276 -Ref: Labels Program-Footnote-1746627 -Node: Word Sorting746711 -Node: History Sorting750783 -Node: Extract Program752618 -Node: Simple Sed760147 -Node: Igawk Program763221 -Ref: Igawk Program-Footnote-1777552 -Ref: Igawk Program-Footnote-2777754 -Ref: Igawk Program-Footnote-3777876 -Node: Anagram Program777991 -Node: Signature Program781053 -Node: Programs Summary782300 -Node: Programs Exercises783514 -Ref: Programs Exercises-Footnote-1787643 -Node: Advanced Features787734 -Node: Nondecimal Data789724 -Node: Array Sorting791315 -Node: Controlling Array Traversal792015 -Ref: Controlling Array Traversal-Footnote-1800382 -Node: Array Sorting Functions800500 -Ref: Array Sorting Functions-Footnote-1805591 -Node: Two-way I/O805787 -Ref: Two-way I/O-Footnote-1812337 -Ref: Two-way I/O-Footnote-2812524 -Node: TCP/IP Networking812606 -Node: Profiling815724 -Ref: Profiling-Footnote-1824217 -Node: Advanced Features Summary824540 -Node: Internationalization826384 -Node: I18N and L10N827864 -Node: Explaining gettext828551 -Ref: Explaining gettext-Footnote-1834443 -Ref: Explaining gettext-Footnote-2834628 -Node: Programmer i18n834793 -Ref: Programmer i18n-Footnote-1839648 -Node: Translator i18n839697 -Node: String Extraction840491 -Ref: String Extraction-Footnote-1841623 -Node: Printf Ordering841709 -Ref: Printf Ordering-Footnote-1844495 -Node: I18N Portability844559 -Ref: I18N Portability-Footnote-1847015 -Node: I18N Example847078 -Ref: I18N Example-Footnote-1849884 -Node: Gawk I18N849957 -Node: I18N Summary850602 -Node: Debugger851943 -Node: Debugging852965 -Node: Debugging Concepts853406 -Node: Debugging Terms855215 -Node: Awk Debugging857790 -Node: Sample Debugging Session858696 -Node: Debugger Invocation859230 -Node: Finding The Bug860616 -Node: List of Debugger Commands867094 -Node: Breakpoint Control868427 -Node: Debugger Execution Control872121 -Node: Viewing And Changing Data875483 -Node: Execution Stack878857 -Node: Debugger Info880494 -Node: Miscellaneous Debugger Commands884565 -Node: Readline Support889653 -Node: Limitations890549 -Ref: Limitations-Footnote-1894780 -Node: Debugging Summary894831 -Node: Arbitrary Precision Arithmetic896110 -Node: Computer Arithmetic897526 -Ref: table-numeric-ranges901117 -Ref: Computer Arithmetic-Footnote-1901839 -Node: Math Definitions901896 -Ref: table-ieee-formats905210 -Ref: Math Definitions-Footnote-1905813 -Node: MPFR features905918 -Node: FP Math Caution907635 -Ref: FP Math Caution-Footnote-1908707 -Node: Inexactness of computations909076 -Node: Inexact representation910036 -Node: Comparing FP Values911396 -Node: Errors accumulate912478 -Node: Getting Accuracy913911 -Node: Try To Round916621 -Node: Setting precision917520 -Ref: table-predefined-precision-strings918217 -Node: Setting the rounding mode920047 -Ref: table-gawk-rounding-modes920421 -Ref: Setting the rounding mode-Footnote-1923829 -Node: Arbitrary Precision Integers924008 -Ref: Arbitrary Precision Integers-Footnote-1928925 -Node: POSIX Floating Point Problems929074 -Ref: POSIX Floating Point Problems-Footnote-1932956 -Node: Floating point summary932994 -Node: Dynamic Extensions935184 -Node: Extension Intro936737 -Node: Plugin License938003 -Node: Extension Mechanism Outline938800 -Ref: figure-load-extension939239 -Ref: figure-register-new-function940804 -Ref: figure-call-new-function941896 -Node: Extension API Description943958 -Node: Extension API Functions Introduction945490 -Node: General Data Types950349 -Ref: General Data Types-Footnote-1956304 -Node: Memory Allocation Functions956603 -Ref: Memory Allocation Functions-Footnote-1959448 -Node: Constructor Functions959547 -Node: Registration Functions961292 -Node: Extension Functions961977 -Node: Exit Callback Functions964600 -Node: Extension Version String965850 -Node: Input Parsers966513 -Node: Output Wrappers976395 -Node: Two-way processors980907 -Node: Printing Messages983172 -Ref: Printing Messages-Footnote-1984343 -Node: Updating ERRNO984496 -Node: Requesting Values985235 -Ref: table-value-types-returned985972 -Node: Accessing Parameters986855 -Node: Symbol Table Access988090 -Node: Symbol table by name988602 -Node: Symbol table by cookie990623 -Ref: Symbol table by cookie-Footnote-1994775 -Node: Cached values994839 -Ref: Cached values-Footnote-1998346 -Node: Array Manipulation998437 -Ref: Array Manipulation-Footnote-1999528 -Node: Array Data Types999565 -Ref: Array Data Types-Footnote-11002223 -Node: Array Functions1002315 -Node: Flattening Arrays1006173 -Node: Creating Arrays1013081 -Node: Redirection API1017850 -Node: Extension API Variables1020681 -Node: Extension Versioning1021314 -Ref: gawk-api-version1021751 -Node: Extension API Informational Variables1023507 -Node: Extension API Boilerplate1024571 -Node: Finding Extensions1028385 -Node: Extension Example1028944 -Node: Internal File Description1029742 -Node: Internal File Ops1033822 -Ref: Internal File Ops-Footnote-11045584 -Node: Using Internal File Ops1045724 -Ref: Using Internal File Ops-Footnote-11048107 -Node: Extension Samples1048381 -Node: Extension Sample File Functions1049910 -Node: Extension Sample Fnmatch1057559 -Node: Extension Sample Fork1059046 -Node: Extension Sample Inplace1060264 -Node: Extension Sample Ord1063474 -Node: Extension Sample Readdir1064310 -Ref: table-readdir-file-types1065199 -Node: Extension Sample Revout1066004 -Node: Extension Sample Rev2way1066593 -Node: Extension Sample Read write array1067333 -Node: Extension Sample Readfile1069275 -Node: Extension Sample Time1070370 -Node: Extension Sample API Tests1071718 -Node: gawkextlib1072210 -Node: Extension summary1074657 -Node: Extension Exercises1078359 -Node: Language History1079857 -Node: V7/SVR3.11081513 -Node: SVR41083665 -Node: POSIX1085099 -Node: BTL1086478 -Node: POSIX/GNU1087207 -Node: Feature History1093069 -Node: Common Extensions1107439 -Node: Ranges and Locales1108722 -Ref: Ranges and Locales-Footnote-11113338 -Ref: Ranges and Locales-Footnote-21113365 -Ref: Ranges and Locales-Footnote-31113600 -Node: Contributors1113821 -Node: History summary1119381 -Node: Installation1120761 -Node: Gawk Distribution1121705 -Node: Getting1122189 -Node: Extracting1123150 -Node: Distribution contents1124788 -Node: Unix Installation1130882 -Node: Quick Installation1131564 -Node: Shell Startup Files1133978 -Node: Additional Configuration Options1135056 -Node: Configuration Philosophy1136861 -Node: Non-Unix Installation1139230 -Node: PC Installation1139688 -Node: PC Binary Installation1141008 -Node: PC Compiling1142860 -Ref: PC Compiling-Footnote-11145654 -Node: PC Testing1145763 -Node: PC Using1146943 -Ref: PC Using-Footnote-11151096 -Node: Cygwin1151169 -Node: MSYS1151939 -Node: VMS Installation1152440 -Node: VMS Compilation1153231 -Ref: VMS Compilation-Footnote-11154460 -Node: VMS Dynamic Extensions1154518 -Node: VMS Installation Details1156203 -Node: VMS Running1158456 -Node: VMS GNV1162735 -Node: VMS Old Gawk1163470 -Node: Bugs1163941 -Node: Other Versions1168256 -Node: Installation summary1174840 -Node: Notes1175891 -Node: Compatibility Mode1176756 -Node: Additions1177538 -Node: Accessing The Source1178463 -Node: Adding Code1179898 -Node: New Ports1186117 -Node: Derived Files1190605 -Ref: Derived Files-Footnote-11196090 -Ref: Derived Files-Footnote-21196125 -Ref: Derived Files-Footnote-31196723 -Node: Future Extensions1196837 -Node: Implementation Limitations1197495 -Node: Extension Design1198678 -Node: Old Extension Problems1199832 -Ref: Old Extension Problems-Footnote-11201350 -Node: Extension New Mechanism Goals1201407 -Ref: Extension New Mechanism Goals-Footnote-11204771 -Node: Extension Other Design Decisions1204960 -Node: Extension Future Growth1207073 -Node: Old Extension Mechanism1207909 -Node: Notes summary1209672 -Node: Basic Concepts1210854 -Node: Basic High Level1211535 -Ref: figure-general-flow1211817 -Ref: figure-process-flow1212502 -Ref: Basic High Level-Footnote-11215803 -Node: Basic Data Typing1215988 -Node: Glossary1219316 -Node: Copying1251263 -Node: GNU Free Documentation License1288802 -Node: Index1313920 +Node: Regexp Summary192174 +Node: Reading Files193780 +Node: Records195943 +Node: awk split records196676 +Node: gawk split records201607 +Ref: gawk split records-Footnote-1206147 +Node: Fields206184 +Node: Nonconstant Fields208925 +Ref: Nonconstant Fields-Footnote-1211161 +Node: Changing Fields211365 +Node: Field Separators217293 +Node: Default Field Splitting219991 +Node: Regexp Field Splitting221109 +Node: Single Character Fields224462 +Node: Command Line Field Separator225522 +Node: Full Line Fields228740 +Ref: Full Line Fields-Footnote-1230262 +Ref: Full Line Fields-Footnote-2230308 +Node: Field Splitting Summary230409 +Node: Constant Size232483 +Node: Splitting By Content237061 +Ref: Splitting By Content-Footnote-1241032 +Node: Multiple Line241195 +Ref: Multiple Line-Footnote-1247077 +Node: Getline247256 +Node: Plain Getline249723 +Node: Getline/Variable252362 +Node: Getline/File253511 +Node: Getline/Variable/File254897 +Ref: Getline/Variable/File-Footnote-1256500 +Node: Getline/Pipe256588 +Node: Getline/Variable/Pipe259293 +Node: Getline/Coprocess260426 +Node: Getline/Variable/Coprocess261691 +Node: Getline Notes262431 +Node: Getline Summary265226 +Ref: table-getline-variants265648 +Node: Read Timeout266396 +Ref: Read Timeout-Footnote-1270302 +Node: Retrying Input270360 +Node: Command-line directories271559 +Node: Input Summary272465 +Node: Input Exercises275637 +Node: Printing276365 +Node: Print278199 +Node: Print Examples279656 +Node: Output Separators282436 +Node: OFMT284453 +Node: Printf285809 +Node: Basic Printf286594 +Node: Control Letters288168 +Node: Format Modifiers292156 +Node: Printf Examples298171 +Node: Redirection300657 +Node: Special FD307498 +Ref: Special FD-Footnote-1310666 +Node: Special Files310740 +Node: Other Inherited Files311357 +Node: Special Network312358 +Node: Special Caveats313218 +Node: Close Files And Pipes314167 +Ref: table-close-pipe-return-values321074 +Ref: Close Files And Pipes-Footnote-1321857 +Ref: Close Files And Pipes-Footnote-2322005 +Node: Nonfatal322157 +Node: Output Summary324482 +Node: Output Exercises325704 +Node: Expressions326383 +Node: Values327571 +Node: Constants328249 +Node: Scalar Constants328940 +Ref: Scalar Constants-Footnote-1329804 +Node: Nondecimal-numbers330054 +Node: Regexp Constants333067 +Node: Using Constant Regexps333593 +Node: Variables336756 +Node: Using Variables337413 +Node: Assignment Options339323 +Node: Conversion341196 +Node: Strings And Numbers341720 +Ref: Strings And Numbers-Footnote-1344783 +Node: Locale influences conversions344892 +Ref: table-locale-affects347650 +Node: All Operators348268 +Node: Arithmetic Ops348897 +Node: Concatenation351403 +Ref: Concatenation-Footnote-1354250 +Node: Assignment Ops354357 +Ref: table-assign-ops359348 +Node: Increment Ops360661 +Node: Truth Values and Conditions364121 +Node: Truth Values365195 +Node: Typing and Comparison366243 +Node: Variable Typing367063 +Node: Comparison Operators370687 +Ref: table-relational-ops371106 +Node: POSIX String Comparison374601 +Ref: POSIX String Comparison-Footnote-1375675 +Node: Boolean Ops375814 +Ref: Boolean Ops-Footnote-1380296 +Node: Conditional Exp380388 +Node: Function Calls382124 +Node: Precedence386001 +Node: Locales389660 +Node: Expressions Summary391292 +Node: Patterns and Actions393865 +Node: Pattern Overview394985 +Node: Regexp Patterns396662 +Node: Expression Patterns397204 +Node: Ranges400985 +Node: BEGIN/END404093 +Node: Using BEGIN/END404854 +Ref: Using BEGIN/END-Footnote-1407590 +Node: I/O And BEGIN/END407696 +Node: BEGINFILE/ENDFILE410010 +Node: Empty412917 +Node: Using Shell Variables413234 +Node: Action Overview415508 +Node: Statements417833 +Node: If Statement419681 +Node: While Statement421176 +Node: Do Statement423204 +Node: For Statement424352 +Node: Switch Statement427510 +Node: Break Statement429896 +Node: Continue Statement431988 +Node: Next Statement433815 +Node: Nextfile Statement436198 +Node: Exit Statement438850 +Node: Built-in Variables441253 +Node: User-modified442386 +Node: Auto-set449972 +Ref: Auto-set-Footnote-1464625 +Ref: Auto-set-Footnote-2464831 +Node: ARGC and ARGV464887 +Node: Pattern Action Summary469100 +Node: Arrays471530 +Node: Array Basics472859 +Node: Array Intro473703 +Ref: figure-array-elements475678 +Ref: Array Intro-Footnote-1478382 +Node: Reference to Elements478510 +Node: Assigning Elements480974 +Node: Array Example481465 +Node: Scanning an Array483224 +Node: Controlling Scanning486246 +Ref: Controlling Scanning-Footnote-1491645 +Node: Numeric Array Subscripts491961 +Node: Uninitialized Subscripts494145 +Node: Delete495764 +Ref: Delete-Footnote-1498516 +Node: Multidimensional498573 +Node: Multiscanning501668 +Node: Arrays of Arrays503259 +Node: Arrays Summary508026 +Node: Functions510119 +Node: Built-in511157 +Node: Calling Built-in512238 +Node: Numeric Functions514234 +Ref: Numeric Functions-Footnote-1519067 +Ref: Numeric Functions-Footnote-2519424 +Ref: Numeric Functions-Footnote-3519472 +Node: String Functions519744 +Ref: String Functions-Footnote-1543248 +Ref: String Functions-Footnote-2543376 +Ref: String Functions-Footnote-3543624 +Node: Gory Details543711 +Ref: table-sub-escapes545502 +Ref: table-sub-proposed547021 +Ref: table-posix-sub548384 +Ref: table-gensub-escapes549925 +Ref: Gory Details-Footnote-1550748 +Node: I/O Functions550902 +Ref: table-system-return-values557484 +Ref: I/O Functions-Footnote-1559464 +Ref: I/O Functions-Footnote-2559612 +Node: Time Functions559732 +Ref: Time Functions-Footnote-1570237 +Ref: Time Functions-Footnote-2570305 +Ref: Time Functions-Footnote-3570463 +Ref: Time Functions-Footnote-4570574 +Ref: Time Functions-Footnote-5570686 +Ref: Time Functions-Footnote-6570913 +Node: Bitwise Functions571179 +Ref: table-bitwise-ops571773 +Ref: Bitwise Functions-Footnote-1576111 +Node: Type Functions576284 +Node: I18N Functions578945 +Node: User-defined580596 +Node: Definition Syntax581401 +Ref: Definition Syntax-Footnote-1587088 +Node: Function Example587159 +Ref: Function Example-Footnote-1590081 +Node: Function Caveats590103 +Node: Calling A Function590621 +Node: Variable Scope591579 +Node: Pass By Value/Reference594573 +Node: Return Statement598072 +Node: Dynamic Typing601051 +Node: Indirect Calls601981 +Ref: Indirect Calls-Footnote-1612232 +Node: Functions Summary612360 +Node: Library Functions615065 +Ref: Library Functions-Footnote-1618672 +Ref: Library Functions-Footnote-2618815 +Node: Library Names618986 +Ref: Library Names-Footnote-1622446 +Ref: Library Names-Footnote-2622669 +Node: General Functions622755 +Node: Strtonum Function623858 +Node: Assert Function626880 +Node: Round Function630206 +Node: Cliff Random Function631747 +Node: Ordinal Functions632763 +Ref: Ordinal Functions-Footnote-1635826 +Ref: Ordinal Functions-Footnote-2636078 +Node: Join Function636288 +Ref: Join Function-Footnote-1638058 +Node: Getlocaltime Function638258 +Node: Readfile Function642000 +Node: Shell Quoting643972 +Node: Data File Management645373 +Node: Filetrans Function646005 +Node: Rewind Function650101 +Node: File Checking652007 +Ref: File Checking-Footnote-1653341 +Node: Empty Files653542 +Node: Ignoring Assigns655521 +Node: Getopt Function657071 +Ref: Getopt Function-Footnote-1668540 +Node: Passwd Functions668740 +Ref: Passwd Functions-Footnote-1677579 +Node: Group Functions677667 +Ref: Group Functions-Footnote-1685564 +Node: Walking Arrays685771 +Node: Library Functions Summary688779 +Node: Library Exercises690185 +Node: Sample Programs690650 +Node: Running Examples691420 +Node: Clones692148 +Node: Cut Program693372 +Node: Egrep Program703301 +Ref: Egrep Program-Footnote-1710813 +Node: Id Program710923 +Node: Split Program714603 +Ref: Split Program-Footnote-1718062 +Node: Tee Program718191 +Node: Uniq Program720981 +Node: Wc Program728407 +Ref: Wc Program-Footnote-1732662 +Node: Miscellaneous Programs732756 +Node: Dupword Program733969 +Node: Alarm Program735999 +Node: Translate Program740854 +Ref: Translate Program-Footnote-1745419 +Node: Labels Program745689 +Ref: Labels Program-Footnote-1749040 +Node: Word Sorting749124 +Node: History Sorting753196 +Node: Extract Program755031 +Node: Simple Sed762560 +Node: Igawk Program765634 +Ref: Igawk Program-Footnote-1779965 +Ref: Igawk Program-Footnote-2780167 +Ref: Igawk Program-Footnote-3780289 +Node: Anagram Program780404 +Node: Signature Program783466 +Node: Programs Summary784713 +Node: Programs Exercises785927 +Ref: Programs Exercises-Footnote-1790056 +Node: Advanced Features790147 +Node: Nondecimal Data792137 +Node: Array Sorting793728 +Node: Controlling Array Traversal794428 +Ref: Controlling Array Traversal-Footnote-1802795 +Node: Array Sorting Functions802913 +Ref: Array Sorting Functions-Footnote-1808004 +Node: Two-way I/O808200 +Ref: Two-way I/O-Footnote-1814750 +Ref: Two-way I/O-Footnote-2814937 +Node: TCP/IP Networking815019 +Node: Profiling818137 +Ref: Profiling-Footnote-1826630 +Node: Advanced Features Summary826953 +Node: Internationalization828797 +Node: I18N and L10N830277 +Node: Explaining gettext830964 +Ref: Explaining gettext-Footnote-1836856 +Ref: Explaining gettext-Footnote-2837041 +Node: Programmer i18n837206 +Ref: Programmer i18n-Footnote-1842061 +Node: Translator i18n842110 +Node: String Extraction842904 +Ref: String Extraction-Footnote-1844036 +Node: Printf Ordering844122 +Ref: Printf Ordering-Footnote-1846908 +Node: I18N Portability846972 +Ref: I18N Portability-Footnote-1849428 +Node: I18N Example849491 +Ref: I18N Example-Footnote-1852297 +Node: Gawk I18N852370 +Node: I18N Summary853015 +Node: Debugger854356 +Node: Debugging855378 +Node: Debugging Concepts855819 +Node: Debugging Terms857628 +Node: Awk Debugging860203 +Node: Sample Debugging Session861109 +Node: Debugger Invocation861643 +Node: Finding The Bug863029 +Node: List of Debugger Commands869507 +Node: Breakpoint Control870840 +Node: Debugger Execution Control874534 +Node: Viewing And Changing Data877896 +Node: Execution Stack881270 +Node: Debugger Info882907 +Node: Miscellaneous Debugger Commands886978 +Node: Readline Support892066 +Node: Limitations892962 +Ref: Limitations-Footnote-1897193 +Node: Debugging Summary897244 +Node: Arbitrary Precision Arithmetic898523 +Node: Computer Arithmetic899939 +Ref: table-numeric-ranges903530 +Ref: Computer Arithmetic-Footnote-1904252 +Node: Math Definitions904309 +Ref: table-ieee-formats907623 +Ref: Math Definitions-Footnote-1908226 +Node: MPFR features908331 +Node: FP Math Caution910048 +Ref: FP Math Caution-Footnote-1911120 +Node: Inexactness of computations911489 +Node: Inexact representation912449 +Node: Comparing FP Values913809 +Node: Errors accumulate914891 +Node: Getting Accuracy916324 +Node: Try To Round919034 +Node: Setting precision919933 +Ref: table-predefined-precision-strings920630 +Node: Setting the rounding mode922460 +Ref: table-gawk-rounding-modes922834 +Ref: Setting the rounding mode-Footnote-1926242 +Node: Arbitrary Precision Integers926421 +Ref: Arbitrary Precision Integers-Footnote-1931338 +Node: POSIX Floating Point Problems931487 +Ref: POSIX Floating Point Problems-Footnote-1935369 +Node: Floating point summary935407 +Node: Dynamic Extensions937597 +Node: Extension Intro939150 +Node: Plugin License940416 +Node: Extension Mechanism Outline941213 +Ref: figure-load-extension941652 +Ref: figure-register-new-function943217 +Ref: figure-call-new-function944309 +Node: Extension API Description946371 +Node: Extension API Functions Introduction947903 +Node: General Data Types952762 +Ref: General Data Types-Footnote-1958717 +Node: Memory Allocation Functions959016 +Ref: Memory Allocation Functions-Footnote-1961861 +Node: Constructor Functions961960 +Node: Registration Functions963705 +Node: Extension Functions964390 +Node: Exit Callback Functions967013 +Node: Extension Version String968263 +Node: Input Parsers968926 +Node: Output Wrappers978808 +Node: Two-way processors983320 +Node: Printing Messages985585 +Ref: Printing Messages-Footnote-1986756 +Node: Updating ERRNO986909 +Node: Requesting Values987648 +Ref: table-value-types-returned988385 +Node: Accessing Parameters989268 +Node: Symbol Table Access990503 +Node: Symbol table by name991015 +Node: Symbol table by cookie993036 +Ref: Symbol table by cookie-Footnote-1997188 +Node: Cached values997252 +Ref: Cached values-Footnote-11000759 +Node: Array Manipulation1000850 +Ref: Array Manipulation-Footnote-11001941 +Node: Array Data Types1001978 +Ref: Array Data Types-Footnote-11004636 +Node: Array Functions1004728 +Node: Flattening Arrays1008586 +Node: Creating Arrays1015494 +Node: Redirection API1020263 +Node: Extension API Variables1023094 +Node: Extension Versioning1023727 +Ref: gawk-api-version1024164 +Node: Extension API Informational Variables1025920 +Node: Extension API Boilerplate1026984 +Node: Finding Extensions1030798 +Node: Extension Example1031357 +Node: Internal File Description1032155 +Node: Internal File Ops1036235 +Ref: Internal File Ops-Footnote-11047997 +Node: Using Internal File Ops1048137 +Ref: Using Internal File Ops-Footnote-11050520 +Node: Extension Samples1050794 +Node: Extension Sample File Functions1052323 +Node: Extension Sample Fnmatch1059972 +Node: Extension Sample Fork1061459 +Node: Extension Sample Inplace1062677 +Node: Extension Sample Ord1065887 +Node: Extension Sample Readdir1066723 +Ref: table-readdir-file-types1067612 +Node: Extension Sample Revout1068417 +Node: Extension Sample Rev2way1069006 +Node: Extension Sample Read write array1069746 +Node: Extension Sample Readfile1071688 +Node: Extension Sample Time1072783 +Node: Extension Sample API Tests1074131 +Node: gawkextlib1074623 +Node: Extension summary1077070 +Node: Extension Exercises1080772 +Node: Language History1082270 +Node: V7/SVR3.11083926 +Node: SVR41086078 +Node: POSIX1087512 +Node: BTL1088891 +Node: POSIX/GNU1089620 +Node: Feature History1095482 +Node: Common Extensions1109852 +Node: Ranges and Locales1111135 +Ref: Ranges and Locales-Footnote-11115751 +Ref: Ranges and Locales-Footnote-21115778 +Ref: Ranges and Locales-Footnote-31116013 +Node: Contributors1116234 +Node: History summary1121794 +Node: Installation1123174 +Node: Gawk Distribution1124118 +Node: Getting1124602 +Node: Extracting1125563 +Node: Distribution contents1127201 +Node: Unix Installation1133295 +Node: Quick Installation1133977 +Node: Shell Startup Files1136391 +Node: Additional Configuration Options1137469 +Node: Configuration Philosophy1139274 +Node: Non-Unix Installation1141643 +Node: PC Installation1142101 +Node: PC Binary Installation1143421 +Node: PC Compiling1145273 +Ref: PC Compiling-Footnote-11148067 +Node: PC Testing1148176 +Node: PC Using1149356 +Ref: PC Using-Footnote-11153509 +Node: Cygwin1153582 +Node: MSYS1154352 +Node: VMS Installation1154853 +Node: VMS Compilation1155644 +Ref: VMS Compilation-Footnote-11156873 +Node: VMS Dynamic Extensions1156931 +Node: VMS Installation Details1158616 +Node: VMS Running1160869 +Node: VMS GNV1165148 +Node: VMS Old Gawk1165883 +Node: Bugs1166354 +Node: Other Versions1170669 +Node: Installation summary1177253 +Node: Notes1178304 +Node: Compatibility Mode1179169 +Node: Additions1179951 +Node: Accessing The Source1180876 +Node: Adding Code1182311 +Node: New Ports1188530 +Node: Derived Files1193018 +Ref: Derived Files-Footnote-11198503 +Ref: Derived Files-Footnote-21198538 +Ref: Derived Files-Footnote-31199136 +Node: Future Extensions1199250 +Node: Implementation Limitations1199908 +Node: Extension Design1201091 +Node: Old Extension Problems1202245 +Ref: Old Extension Problems-Footnote-11203763 +Node: Extension New Mechanism Goals1203820 +Ref: Extension New Mechanism Goals-Footnote-11207184 +Node: Extension Other Design Decisions1207373 +Node: Extension Future Growth1209486 +Node: Old Extension Mechanism1210322 +Node: Notes summary1212085 +Node: Basic Concepts1213267 +Node: Basic High Level1213948 +Ref: figure-general-flow1214230 +Ref: figure-process-flow1214915 +Ref: Basic High Level-Footnote-11218216 +Node: Basic Data Typing1218401 +Node: Glossary1221729 +Node: Copying1253676 +Node: GNU Free Documentation License1291215 +Node: Index1316333 End Tag Table |