aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--doc/ChangeLog5
-rw-r--r--doc/gawk.info1079
-rw-r--r--doc/gawk.texi2
-rw-r--r--doc/gawktexi.in2
-rw-r--r--profile.c26
-rw-r--r--test/ChangeLog6
-rw-r--r--test/Makefile.am12
-rw-r--r--test/Makefile.in12
-rw-r--r--test/profile7.awk12
-rw-r--r--test/profile7.ok15
11 files changed, 629 insertions, 547 deletions
diff --git a/ChangeLog b/ChangeLog
index aba96d13..0e17cb80 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-11-02 Arnold D. Robbins <arnold@skeeve.com>
+
+ * profile.c (div_on_left_mul_on_right): New function.
+ (parenthesize): Call it.
+
2014-10-30 Arnold D. Robbins <arnold@skeeve.com>
* configure: Regenerated after fix to m4/readline.m4.
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 7725061b..6dfd1b17 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2014-11-02 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Comment out that I need an owner for awk.info.
+ I may have found one or two people.
+
2014-10-29 Andrew J. Schorr <aschorr@telemetry-investments.com>
* gawktexi.in: Document new extras directory containing shell startup
diff --git a/doc/gawk.info b/doc/gawk.info
index ae3c6f8c..5863ea0f 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -1259,9 +1259,6 @@ for several years.
world, please see `http://awk.info/?contribute' for how to contribute
it to the web site.
- As of this writing, this website is in search of a maintainer; please
-contact me if you are interested.
-

File: gawk.info, Node: Acknowledgments, Prev: How To Contribute, Up: Preface
@@ -34448,543 +34445,543 @@ Node: Manual History63261
Ref: Manual History-Footnote-166252
Ref: Manual History-Footnote-266293
Node: How To Contribute66367
-Node: Acknowledgments67606
-Node: Getting Started72414
-Node: Running gawk74848
-Node: One-shot76038
-Node: Read Terminal77263
-Node: Long79290
-Node: Executable Scripts80806
-Ref: Executable Scripts-Footnote-183595
-Node: Comments83697
-Node: Quoting86170
-Node: DOS Quoting91676
-Node: Sample Data Files92351
-Node: Very Simple94944
-Node: Two Rules99835
-Node: More Complex101721
-Node: Statements/Lines104583
-Ref: Statements/Lines-Footnote-1109039
-Node: Other Features109304
-Node: When110235
-Ref: When-Footnote-1111991
-Node: Intro Summary112056
-Node: Invoking Gawk112939
-Node: Command Line114454
-Node: Options115245
-Ref: Options-Footnote-1131028
-Node: Other Arguments131053
-Node: Naming Standard Input134014
-Node: Environment Variables135107
-Node: AWKPATH Variable135665
-Ref: AWKPATH Variable-Footnote-1139075
-Ref: AWKPATH Variable-Footnote-2139120
-Node: AWKLIBPATH Variable139380
-Node: Other Environment Variables140636
-Node: Exit Status144127
-Node: Include Files144802
-Node: Loading Shared Libraries148390
-Node: Obsolete149817
-Node: Undocumented150514
-Node: Invoking Summary150781
-Node: Regexp152447
-Node: Regexp Usage153906
-Node: Escape Sequences155939
-Node: Regexp Operators162187
-Ref: Regexp Operators-Footnote-1169621
-Ref: Regexp Operators-Footnote-2169768
-Node: Bracket Expressions169866
-Ref: table-char-classes171883
-Node: Leftmost Longest174823
-Node: Computed Regexps176125
-Node: GNU Regexp Operators179522
-Node: Case-sensitivity183224
-Ref: Case-sensitivity-Footnote-1186114
-Ref: Case-sensitivity-Footnote-2186349
-Node: Regexp Summary186457
-Node: Reading Files187926
-Node: Records190020
-Node: awk split records190752
-Node: gawk split records195666
-Ref: gawk split records-Footnote-1200205
-Node: Fields200242
-Ref: Fields-Footnote-1203040
-Node: Nonconstant Fields203126
-Ref: Nonconstant Fields-Footnote-1205362
-Node: Changing Fields205564
-Node: Field Separators211496
-Node: Default Field Splitting214200
-Node: Regexp Field Splitting215317
-Node: Single Character Fields218667
-Node: Command Line Field Separator219726
-Node: Full Line Fields222938
-Ref: Full Line Fields-Footnote-1223446
-Node: Field Splitting Summary223492
-Ref: Field Splitting Summary-Footnote-1226623
-Node: Constant Size226724
-Node: Splitting By Content231330
-Ref: Splitting By Content-Footnote-1235403
-Node: Multiple Line235443
-Ref: Multiple Line-Footnote-1241332
-Node: Getline241511
-Node: Plain Getline243722
-Node: Getline/Variable246362
-Node: Getline/File247509
-Node: Getline/Variable/File248893
-Ref: Getline/Variable/File-Footnote-1250494
-Node: Getline/Pipe250581
-Node: Getline/Variable/Pipe253264
-Node: Getline/Coprocess254395
-Node: Getline/Variable/Coprocess255647
-Node: Getline Notes256386
-Node: Getline Summary259178
-Ref: table-getline-variants259590
-Node: Read Timeout260419
-Ref: Read Timeout-Footnote-1264233
-Node: Command-line directories264291
-Node: Input Summary265195
-Node: Input Exercises268447
-Node: Printing269175
-Node: Print270952
-Node: Print Examples272409
-Node: Output Separators275188
-Node: OFMT277206
-Node: Printf278560
-Node: Basic Printf279345
-Node: Control Letters280916
-Node: Format Modifiers284900
-Node: Printf Examples290907
-Node: Redirection293389
-Node: Special FD300228
-Ref: Special FD-Footnote-1303385
-Node: Special Files303459
-Node: Other Inherited Files304075
-Node: Special Network305075
-Node: Special Caveats305936
-Node: Close Files And Pipes306887
-Ref: Close Files And Pipes-Footnote-1314066
-Ref: Close Files And Pipes-Footnote-2314214
-Node: Output Summary314364
-Node: Output Exercises315360
-Node: Expressions316040
-Node: Values317225
-Node: Constants317901
-Node: Scalar Constants318581
-Ref: Scalar Constants-Footnote-1319440
-Node: Nondecimal-numbers319690
-Node: Regexp Constants322690
-Node: Using Constant Regexps323215
-Node: Variables326353
-Node: Using Variables327008
-Node: Assignment Options328918
-Node: Conversion330793
-Node: Strings And Numbers331317
-Ref: Strings And Numbers-Footnote-1334381
-Node: Locale influences conversions334490
-Ref: table-locale-affects337235
-Node: All Operators337823
-Node: Arithmetic Ops338453
-Node: Concatenation340958
-Ref: Concatenation-Footnote-1343777
-Node: Assignment Ops343883
-Ref: table-assign-ops348866
-Node: Increment Ops350144
-Node: Truth Values and Conditions353582
-Node: Truth Values354665
-Node: Typing and Comparison355714
-Node: Variable Typing356507
-Node: Comparison Operators360159
-Ref: table-relational-ops360569
-Node: POSIX String Comparison364084
-Ref: POSIX String Comparison-Footnote-1365156
-Node: Boolean Ops365294
-Ref: Boolean Ops-Footnote-1369773
-Node: Conditional Exp369864
-Node: Function Calls371591
-Node: Precedence375471
-Node: Locales379139
-Node: Expressions Summary380770
-Node: Patterns and Actions383344
-Node: Pattern Overview384464
-Node: Regexp Patterns386143
-Node: Expression Patterns386686
-Node: Ranges390466
-Node: BEGIN/END393572
-Node: Using BEGIN/END394334
-Ref: Using BEGIN/END-Footnote-1397071
-Node: I/O And BEGIN/END397177
-Node: BEGINFILE/ENDFILE399491
-Node: Empty402392
-Node: Using Shell Variables402709
-Node: Action Overview404985
-Node: Statements407312
-Node: If Statement409160
-Node: While Statement410658
-Node: Do Statement412686
-Node: For Statement413828
-Node: Switch Statement416983
-Node: Break Statement419371
-Node: Continue Statement421412
-Node: Next Statement423237
-Node: Nextfile Statement425617
-Node: Exit Statement428247
-Node: Built-in Variables430650
-Node: User-modified431783
-Ref: User-modified-Footnote-1439463
-Node: Auto-set439525
-Ref: Auto-set-Footnote-1452892
-Ref: Auto-set-Footnote-2453097
-Node: ARGC and ARGV453153
-Node: Pattern Action Summary457357
-Node: Arrays459784
-Node: Array Basics461113
-Node: Array Intro461957
-Ref: figure-array-elements463921
-Ref: Array Intro-Footnote-1466445
-Node: Reference to Elements466573
-Node: Assigning Elements469023
-Node: Array Example469514
-Node: Scanning an Array471272
-Node: Controlling Scanning474288
-Ref: Controlling Scanning-Footnote-1479477
-Node: Numeric Array Subscripts479793
-Node: Uninitialized Subscripts481978
-Node: Delete483595
-Ref: Delete-Footnote-1486339
-Node: Multidimensional486396
-Node: Multiscanning489491
-Node: Arrays of Arrays491080
-Node: Arrays Summary495841
-Node: Functions497946
-Node: Built-in498819
-Node: Calling Built-in499897
-Node: Numeric Functions501885
-Ref: Numeric Functions-Footnote-1506709
-Ref: Numeric Functions-Footnote-2507066
-Ref: Numeric Functions-Footnote-3507114
-Node: String Functions507383
-Ref: String Functions-Footnote-1530855
-Ref: String Functions-Footnote-2530984
-Ref: String Functions-Footnote-3531232
-Node: Gory Details531319
-Ref: table-sub-escapes533100
-Ref: table-sub-proposed534620
-Ref: table-posix-sub535984
-Ref: table-gensub-escapes537524
-Ref: Gory Details-Footnote-1538356
-Node: I/O Functions538507
-Ref: I/O Functions-Footnote-1545608
-Node: Time Functions545755
-Ref: Time Functions-Footnote-1556224
-Ref: Time Functions-Footnote-2556292
-Ref: Time Functions-Footnote-3556450
-Ref: Time Functions-Footnote-4556561
-Ref: Time Functions-Footnote-5556673
-Ref: Time Functions-Footnote-6556900
-Node: Bitwise Functions557166
-Ref: table-bitwise-ops557728
-Ref: Bitwise Functions-Footnote-1562036
-Node: Type Functions562205
-Node: I18N Functions563354
-Node: User-defined564999
-Node: Definition Syntax565803
-Ref: Definition Syntax-Footnote-1571209
-Node: Function Example571278
-Ref: Function Example-Footnote-1574195
-Node: Function Caveats574217
-Node: Calling A Function574735
-Node: Variable Scope575690
-Node: Pass By Value/Reference578678
-Node: Return Statement582188
-Node: Dynamic Typing585172
-Node: Indirect Calls586101
-Ref: Indirect Calls-Footnote-1597405
-Node: Functions Summary597533
-Node: Library Functions600232
-Ref: Library Functions-Footnote-1603850
-Ref: Library Functions-Footnote-2603993
-Node: Library Names604164
-Ref: Library Names-Footnote-1607624
-Ref: Library Names-Footnote-2607844
-Node: General Functions607930
-Node: Strtonum Function609033
-Node: Assert Function612053
-Node: Round Function615377
-Node: Cliff Random Function616918
-Node: Ordinal Functions617934
-Ref: Ordinal Functions-Footnote-1620999
-Ref: Ordinal Functions-Footnote-2621251
-Node: Join Function621462
-Ref: Join Function-Footnote-1623233
-Node: Getlocaltime Function623433
-Node: Readfile Function627174
-Node: Shell Quoting629144
-Node: Data File Management630545
-Node: Filetrans Function631177
-Node: Rewind Function635236
-Node: File Checking636621
-Ref: File Checking-Footnote-1637949
-Node: Empty Files638150
-Node: Ignoring Assigns640129
-Node: Getopt Function641680
-Ref: Getopt Function-Footnote-1653140
-Node: Passwd Functions653343
-Ref: Passwd Functions-Footnote-1662194
-Node: Group Functions662282
-Ref: Group Functions-Footnote-1670185
-Node: Walking Arrays670398
-Node: Library Functions Summary672001
-Node: Library Exercises673402
-Node: Sample Programs674682
-Node: Running Examples675452
-Node: Clones676180
-Node: Cut Program677404
-Node: Egrep Program687134
-Ref: Egrep Program-Footnote-1694638
-Node: Id Program694748
-Node: Split Program698392
-Ref: Split Program-Footnote-1701838
-Node: Tee Program701966
-Node: Uniq Program704753
-Node: Wc Program712174
-Ref: Wc Program-Footnote-1716422
-Node: Miscellaneous Programs716514
-Node: Dupword Program717727
-Node: Alarm Program719758
-Node: Translate Program724562
-Ref: Translate Program-Footnote-1729126
-Node: Labels Program729396
-Ref: Labels Program-Footnote-1732745
-Node: Word Sorting732829
-Node: History Sorting736899
-Node: Extract Program738735
-Node: Simple Sed746267
-Node: Igawk Program749329
-Ref: Igawk Program-Footnote-1763655
-Ref: Igawk Program-Footnote-2763856
-Ref: Igawk Program-Footnote-3763978
-Node: Anagram Program764093
-Node: Signature Program767155
-Node: Programs Summary768402
-Node: Programs Exercises769595
-Ref: Programs Exercises-Footnote-1773726
-Node: Advanced Features773817
-Node: Nondecimal Data775765
-Node: Array Sorting777355
-Node: Controlling Array Traversal778052
-Ref: Controlling Array Traversal-Footnote-1786383
-Node: Array Sorting Functions786501
-Ref: Array Sorting Functions-Footnote-1790393
-Node: Two-way I/O790587
-Ref: Two-way I/O-Footnote-1795531
-Ref: Two-way I/O-Footnote-2795717
-Node: TCP/IP Networking795799
-Node: Profiling798671
-Node: Advanced Features Summary806945
-Node: Internationalization808878
-Node: I18N and L10N810358
-Node: Explaining gettext811044
-Ref: Explaining gettext-Footnote-1816073
-Ref: Explaining gettext-Footnote-2816257
-Node: Programmer i18n816422
-Ref: Programmer i18n-Footnote-1821288
-Node: Translator i18n821337
-Node: String Extraction822131
-Ref: String Extraction-Footnote-1823262
-Node: Printf Ordering823348
-Ref: Printf Ordering-Footnote-1826134
-Node: I18N Portability826198
-Ref: I18N Portability-Footnote-1828647
-Node: I18N Example828710
-Ref: I18N Example-Footnote-1831510
-Node: Gawk I18N831582
-Node: I18N Summary832220
-Node: Debugger833559
-Node: Debugging834581
-Node: Debugging Concepts835022
-Node: Debugging Terms836879
-Node: Awk Debugging839454
-Node: Sample Debugging Session840346
-Node: Debugger Invocation840866
-Node: Finding The Bug842250
-Node: List of Debugger Commands848725
-Node: Breakpoint Control850057
-Node: Debugger Execution Control853749
-Node: Viewing And Changing Data857113
-Node: Execution Stack860478
-Node: Debugger Info862116
-Node: Miscellaneous Debugger Commands866133
-Node: Readline Support871325
-Node: Limitations872217
-Node: Debugging Summary874314
-Node: Arbitrary Precision Arithmetic875482
-Node: Computer Arithmetic876898
-Ref: table-numeric-ranges880499
-Ref: Computer Arithmetic-Footnote-1881358
-Node: Math Definitions881415
-Ref: table-ieee-formats884702
-Ref: Math Definitions-Footnote-1885306
-Node: MPFR features885411
-Node: FP Math Caution887082
-Ref: FP Math Caution-Footnote-1888132
-Node: Inexactness of computations888501
-Node: Inexact representation889449
-Node: Comparing FP Values890804
-Node: Errors accumulate891877
-Node: Getting Accuracy893310
-Node: Try To Round895969
-Node: Setting precision896868
-Ref: table-predefined-precision-strings897552
-Node: Setting the rounding mode899346
-Ref: table-gawk-rounding-modes899710
-Ref: Setting the rounding mode-Footnote-1903164
-Node: Arbitrary Precision Integers903343
-Ref: Arbitrary Precision Integers-Footnote-1908247
-Node: POSIX Floating Point Problems908396
-Ref: POSIX Floating Point Problems-Footnote-1912272
-Node: Floating point summary912310
-Node: Dynamic Extensions914502
-Node: Extension Intro916054
-Node: Plugin License917320
-Node: Extension Mechanism Outline918117
-Ref: figure-load-extension918545
-Ref: figure-register-new-function920025
-Ref: figure-call-new-function921029
-Node: Extension API Description923015
-Node: Extension API Functions Introduction924465
-Node: General Data Types929301
-Ref: General Data Types-Footnote-1934988
-Node: Memory Allocation Functions935287
-Ref: Memory Allocation Functions-Footnote-1938117
-Node: Constructor Functions938213
-Node: Registration Functions939947
-Node: Extension Functions940632
-Node: Exit Callback Functions942928
-Node: Extension Version String944176
-Node: Input Parsers944826
-Node: Output Wrappers954641
-Node: Two-way processors959157
-Node: Printing Messages961361
-Ref: Printing Messages-Footnote-1962438
-Node: Updating `ERRNO'962590
-Node: Requesting Values963330
-Ref: table-value-types-returned964058
-Node: Accessing Parameters965016
-Node: Symbol Table Access966247
-Node: Symbol table by name966761
-Node: Symbol table by cookie968741
-Ref: Symbol table by cookie-Footnote-1972880
-Node: Cached values972943
-Ref: Cached values-Footnote-1976447
-Node: Array Manipulation976538
-Ref: Array Manipulation-Footnote-1977636
-Node: Array Data Types977675
-Ref: Array Data Types-Footnote-1980332
-Node: Array Functions980424
-Node: Flattening Arrays984278
-Node: Creating Arrays991165
-Node: Extension API Variables995932
-Node: Extension Versioning996568
-Node: Extension API Informational Variables998469
-Node: Extension API Boilerplate999557
-Node: Finding Extensions1003373
-Node: Extension Example1003933
-Node: Internal File Description1004705
-Node: Internal File Ops1008772
-Ref: Internal File Ops-Footnote-11020430
-Node: Using Internal File Ops1020570
-Ref: Using Internal File Ops-Footnote-11022953
-Node: Extension Samples1023226
-Node: Extension Sample File Functions1024750
-Node: Extension Sample Fnmatch1032352
-Node: Extension Sample Fork1033834
-Node: Extension Sample Inplace1035047
-Node: Extension Sample Ord1036722
-Node: Extension Sample Readdir1037558
-Ref: table-readdir-file-types1038434
-Node: Extension Sample Revout1039245
-Node: Extension Sample Rev2way1039836
-Node: Extension Sample Read write array1040577
-Node: Extension Sample Readfile1042516
-Node: Extension Sample Time1043611
-Node: Extension Sample API Tests1044960
-Node: gawkextlib1045451
-Node: Extension summary1048101
-Node: Extension Exercises1051783
-Node: Language History1052505
-Node: V7/SVR3.11054162
-Node: SVR41056343
-Node: POSIX1057788
-Node: BTL1059177
-Node: POSIX/GNU1059911
-Node: Feature History1065540
-Node: Common Extensions1078638
-Node: Ranges and Locales1079962
-Ref: Ranges and Locales-Footnote-11084601
-Ref: Ranges and Locales-Footnote-21084628
-Ref: Ranges and Locales-Footnote-31084862
-Node: Contributors1085083
-Node: History summary1090623
-Node: Installation1091992
-Node: Gawk Distribution1092948
-Node: Getting1093432
-Node: Extracting1094256
-Node: Distribution contents1095898
-Node: Unix Installation1101963
-Node: Quick Installation1102646
-Node: Shell Startup Files1105064
-Node: Additional Configuration Options1106143
-Node: Configuration Philosophy1107884
-Node: Non-Unix Installation1110235
-Node: PC Installation1110693
-Node: PC Binary Installation1112019
-Node: PC Compiling1113867
-Ref: PC Compiling-Footnote-11116888
-Node: PC Testing1116993
-Node: PC Using1118169
-Node: Cygwin1122284
-Node: MSYS1123107
-Node: VMS Installation1123605
-Node: VMS Compilation1124397
-Ref: VMS Compilation-Footnote-11125619
-Node: VMS Dynamic Extensions1125677
-Node: VMS Installation Details1127361
-Node: VMS Running1129613
-Node: VMS GNV1132454
-Node: VMS Old Gawk1133188
-Node: Bugs1133658
-Node: Other Versions1137562
-Node: Installation summary1143775
-Node: Notes1144831
-Node: Compatibility Mode1145696
-Node: Additions1146478
-Node: Accessing The Source1147403
-Node: Adding Code1148839
-Node: New Ports1155011
-Node: Derived Files1159493
-Ref: Derived Files-Footnote-11164968
-Ref: Derived Files-Footnote-21165002
-Ref: Derived Files-Footnote-31165598
-Node: Future Extensions1165712
-Node: Implementation Limitations1166318
-Node: Extension Design1167566
-Node: Old Extension Problems1168720
-Ref: Old Extension Problems-Footnote-11170237
-Node: Extension New Mechanism Goals1170294
-Ref: Extension New Mechanism Goals-Footnote-11173654
-Node: Extension Other Design Decisions1173843
-Node: Extension Future Growth1175951
-Node: Old Extension Mechanism1176787
-Node: Notes summary1178549
-Node: Basic Concepts1179735
-Node: Basic High Level1180416
-Ref: figure-general-flow1180688
-Ref: figure-process-flow1181287
-Ref: Basic High Level-Footnote-11184516
-Node: Basic Data Typing1184701
-Node: Glossary1188029
-Node: Copying1213187
-Node: GNU Free Documentation License1250743
-Node: Index1275879
+Node: Acknowledgments67498
+Node: Getting Started72306
+Node: Running gawk74740
+Node: One-shot75930
+Node: Read Terminal77155
+Node: Long79182
+Node: Executable Scripts80698
+Ref: Executable Scripts-Footnote-183487
+Node: Comments83589
+Node: Quoting86062
+Node: DOS Quoting91568
+Node: Sample Data Files92243
+Node: Very Simple94836
+Node: Two Rules99727
+Node: More Complex101613
+Node: Statements/Lines104475
+Ref: Statements/Lines-Footnote-1108931
+Node: Other Features109196
+Node: When110127
+Ref: When-Footnote-1111883
+Node: Intro Summary111948
+Node: Invoking Gawk112831
+Node: Command Line114346
+Node: Options115137
+Ref: Options-Footnote-1130920
+Node: Other Arguments130945
+Node: Naming Standard Input133906
+Node: Environment Variables134999
+Node: AWKPATH Variable135557
+Ref: AWKPATH Variable-Footnote-1138967
+Ref: AWKPATH Variable-Footnote-2139012
+Node: AWKLIBPATH Variable139272
+Node: Other Environment Variables140528
+Node: Exit Status144019
+Node: Include Files144694
+Node: Loading Shared Libraries148282
+Node: Obsolete149709
+Node: Undocumented150406
+Node: Invoking Summary150673
+Node: Regexp152339
+Node: Regexp Usage153798
+Node: Escape Sequences155831
+Node: Regexp Operators162079
+Ref: Regexp Operators-Footnote-1169513
+Ref: Regexp Operators-Footnote-2169660
+Node: Bracket Expressions169758
+Ref: table-char-classes171775
+Node: Leftmost Longest174715
+Node: Computed Regexps176017
+Node: GNU Regexp Operators179414
+Node: Case-sensitivity183116
+Ref: Case-sensitivity-Footnote-1186006
+Ref: Case-sensitivity-Footnote-2186241
+Node: Regexp Summary186349
+Node: Reading Files187818
+Node: Records189912
+Node: awk split records190644
+Node: gawk split records195558
+Ref: gawk split records-Footnote-1200097
+Node: Fields200134
+Ref: Fields-Footnote-1202932
+Node: Nonconstant Fields203018
+Ref: Nonconstant Fields-Footnote-1205254
+Node: Changing Fields205456
+Node: Field Separators211388
+Node: Default Field Splitting214092
+Node: Regexp Field Splitting215209
+Node: Single Character Fields218559
+Node: Command Line Field Separator219618
+Node: Full Line Fields222830
+Ref: Full Line Fields-Footnote-1223338
+Node: Field Splitting Summary223384
+Ref: Field Splitting Summary-Footnote-1226515
+Node: Constant Size226616
+Node: Splitting By Content231222
+Ref: Splitting By Content-Footnote-1235295
+Node: Multiple Line235335
+Ref: Multiple Line-Footnote-1241224
+Node: Getline241403
+Node: Plain Getline243614
+Node: Getline/Variable246254
+Node: Getline/File247401
+Node: Getline/Variable/File248785
+Ref: Getline/Variable/File-Footnote-1250386
+Node: Getline/Pipe250473
+Node: Getline/Variable/Pipe253156
+Node: Getline/Coprocess254287
+Node: Getline/Variable/Coprocess255539
+Node: Getline Notes256278
+Node: Getline Summary259070
+Ref: table-getline-variants259482
+Node: Read Timeout260311
+Ref: Read Timeout-Footnote-1264125
+Node: Command-line directories264183
+Node: Input Summary265087
+Node: Input Exercises268339
+Node: Printing269067
+Node: Print270844
+Node: Print Examples272301
+Node: Output Separators275080
+Node: OFMT277098
+Node: Printf278452
+Node: Basic Printf279237
+Node: Control Letters280808
+Node: Format Modifiers284792
+Node: Printf Examples290799
+Node: Redirection293281
+Node: Special FD300120
+Ref: Special FD-Footnote-1303277
+Node: Special Files303351
+Node: Other Inherited Files303967
+Node: Special Network304967
+Node: Special Caveats305828
+Node: Close Files And Pipes306779
+Ref: Close Files And Pipes-Footnote-1313958
+Ref: Close Files And Pipes-Footnote-2314106
+Node: Output Summary314256
+Node: Output Exercises315252
+Node: Expressions315932
+Node: Values317117
+Node: Constants317793
+Node: Scalar Constants318473
+Ref: Scalar Constants-Footnote-1319332
+Node: Nondecimal-numbers319582
+Node: Regexp Constants322582
+Node: Using Constant Regexps323107
+Node: Variables326245
+Node: Using Variables326900
+Node: Assignment Options328810
+Node: Conversion330685
+Node: Strings And Numbers331209
+Ref: Strings And Numbers-Footnote-1334273
+Node: Locale influences conversions334382
+Ref: table-locale-affects337127
+Node: All Operators337715
+Node: Arithmetic Ops338345
+Node: Concatenation340850
+Ref: Concatenation-Footnote-1343669
+Node: Assignment Ops343775
+Ref: table-assign-ops348758
+Node: Increment Ops350036
+Node: Truth Values and Conditions353474
+Node: Truth Values354557
+Node: Typing and Comparison355606
+Node: Variable Typing356399
+Node: Comparison Operators360051
+Ref: table-relational-ops360461
+Node: POSIX String Comparison363976
+Ref: POSIX String Comparison-Footnote-1365048
+Node: Boolean Ops365186
+Ref: Boolean Ops-Footnote-1369665
+Node: Conditional Exp369756
+Node: Function Calls371483
+Node: Precedence375363
+Node: Locales379031
+Node: Expressions Summary380662
+Node: Patterns and Actions383236
+Node: Pattern Overview384356
+Node: Regexp Patterns386035
+Node: Expression Patterns386578
+Node: Ranges390358
+Node: BEGIN/END393464
+Node: Using BEGIN/END394226
+Ref: Using BEGIN/END-Footnote-1396963
+Node: I/O And BEGIN/END397069
+Node: BEGINFILE/ENDFILE399383
+Node: Empty402284
+Node: Using Shell Variables402601
+Node: Action Overview404877
+Node: Statements407204
+Node: If Statement409052
+Node: While Statement410550
+Node: Do Statement412578
+Node: For Statement413720
+Node: Switch Statement416875
+Node: Break Statement419263
+Node: Continue Statement421304
+Node: Next Statement423129
+Node: Nextfile Statement425509
+Node: Exit Statement428139
+Node: Built-in Variables430542
+Node: User-modified431675
+Ref: User-modified-Footnote-1439355
+Node: Auto-set439417
+Ref: Auto-set-Footnote-1452784
+Ref: Auto-set-Footnote-2452989
+Node: ARGC and ARGV453045
+Node: Pattern Action Summary457249
+Node: Arrays459676
+Node: Array Basics461005
+Node: Array Intro461849
+Ref: figure-array-elements463813
+Ref: Array Intro-Footnote-1466337
+Node: Reference to Elements466465
+Node: Assigning Elements468915
+Node: Array Example469406
+Node: Scanning an Array471164
+Node: Controlling Scanning474180
+Ref: Controlling Scanning-Footnote-1479369
+Node: Numeric Array Subscripts479685
+Node: Uninitialized Subscripts481870
+Node: Delete483487
+Ref: Delete-Footnote-1486231
+Node: Multidimensional486288
+Node: Multiscanning489383
+Node: Arrays of Arrays490972
+Node: Arrays Summary495733
+Node: Functions497838
+Node: Built-in498711
+Node: Calling Built-in499789
+Node: Numeric Functions501777
+Ref: Numeric Functions-Footnote-1506601
+Ref: Numeric Functions-Footnote-2506958
+Ref: Numeric Functions-Footnote-3507006
+Node: String Functions507275
+Ref: String Functions-Footnote-1530747
+Ref: String Functions-Footnote-2530876
+Ref: String Functions-Footnote-3531124
+Node: Gory Details531211
+Ref: table-sub-escapes532992
+Ref: table-sub-proposed534512
+Ref: table-posix-sub535876
+Ref: table-gensub-escapes537416
+Ref: Gory Details-Footnote-1538248
+Node: I/O Functions538399
+Ref: I/O Functions-Footnote-1545500
+Node: Time Functions545647
+Ref: Time Functions-Footnote-1556116
+Ref: Time Functions-Footnote-2556184
+Ref: Time Functions-Footnote-3556342
+Ref: Time Functions-Footnote-4556453
+Ref: Time Functions-Footnote-5556565
+Ref: Time Functions-Footnote-6556792
+Node: Bitwise Functions557058
+Ref: table-bitwise-ops557620
+Ref: Bitwise Functions-Footnote-1561928
+Node: Type Functions562097
+Node: I18N Functions563246
+Node: User-defined564891
+Node: Definition Syntax565695
+Ref: Definition Syntax-Footnote-1571101
+Node: Function Example571170
+Ref: Function Example-Footnote-1574087
+Node: Function Caveats574109
+Node: Calling A Function574627
+Node: Variable Scope575582
+Node: Pass By Value/Reference578570
+Node: Return Statement582080
+Node: Dynamic Typing585064
+Node: Indirect Calls585993
+Ref: Indirect Calls-Footnote-1597297
+Node: Functions Summary597425
+Node: Library Functions600124
+Ref: Library Functions-Footnote-1603742
+Ref: Library Functions-Footnote-2603885
+Node: Library Names604056
+Ref: Library Names-Footnote-1607516
+Ref: Library Names-Footnote-2607736
+Node: General Functions607822
+Node: Strtonum Function608925
+Node: Assert Function611945
+Node: Round Function615269
+Node: Cliff Random Function616810
+Node: Ordinal Functions617826
+Ref: Ordinal Functions-Footnote-1620891
+Ref: Ordinal Functions-Footnote-2621143
+Node: Join Function621354
+Ref: Join Function-Footnote-1623125
+Node: Getlocaltime Function623325
+Node: Readfile Function627066
+Node: Shell Quoting629036
+Node: Data File Management630437
+Node: Filetrans Function631069
+Node: Rewind Function635128
+Node: File Checking636513
+Ref: File Checking-Footnote-1637841
+Node: Empty Files638042
+Node: Ignoring Assigns640021
+Node: Getopt Function641572
+Ref: Getopt Function-Footnote-1653032
+Node: Passwd Functions653235
+Ref: Passwd Functions-Footnote-1662086
+Node: Group Functions662174
+Ref: Group Functions-Footnote-1670077
+Node: Walking Arrays670290
+Node: Library Functions Summary671893
+Node: Library Exercises673294
+Node: Sample Programs674574
+Node: Running Examples675344
+Node: Clones676072
+Node: Cut Program677296
+Node: Egrep Program687026
+Ref: Egrep Program-Footnote-1694530
+Node: Id Program694640
+Node: Split Program698284
+Ref: Split Program-Footnote-1701730
+Node: Tee Program701858
+Node: Uniq Program704645
+Node: Wc Program712066
+Ref: Wc Program-Footnote-1716314
+Node: Miscellaneous Programs716406
+Node: Dupword Program717619
+Node: Alarm Program719650
+Node: Translate Program724454
+Ref: Translate Program-Footnote-1729018
+Node: Labels Program729288
+Ref: Labels Program-Footnote-1732637
+Node: Word Sorting732721
+Node: History Sorting736791
+Node: Extract Program738627
+Node: Simple Sed746159
+Node: Igawk Program749221
+Ref: Igawk Program-Footnote-1763547
+Ref: Igawk Program-Footnote-2763748
+Ref: Igawk Program-Footnote-3763870
+Node: Anagram Program763985
+Node: Signature Program767047
+Node: Programs Summary768294
+Node: Programs Exercises769487
+Ref: Programs Exercises-Footnote-1773618
+Node: Advanced Features773709
+Node: Nondecimal Data775657
+Node: Array Sorting777247
+Node: Controlling Array Traversal777944
+Ref: Controlling Array Traversal-Footnote-1786275
+Node: Array Sorting Functions786393
+Ref: Array Sorting Functions-Footnote-1790285
+Node: Two-way I/O790479
+Ref: Two-way I/O-Footnote-1795423
+Ref: Two-way I/O-Footnote-2795609
+Node: TCP/IP Networking795691
+Node: Profiling798563
+Node: Advanced Features Summary806837
+Node: Internationalization808770
+Node: I18N and L10N810250
+Node: Explaining gettext810936
+Ref: Explaining gettext-Footnote-1815965
+Ref: Explaining gettext-Footnote-2816149
+Node: Programmer i18n816314
+Ref: Programmer i18n-Footnote-1821180
+Node: Translator i18n821229
+Node: String Extraction822023
+Ref: String Extraction-Footnote-1823154
+Node: Printf Ordering823240
+Ref: Printf Ordering-Footnote-1826026
+Node: I18N Portability826090
+Ref: I18N Portability-Footnote-1828539
+Node: I18N Example828602
+Ref: I18N Example-Footnote-1831402
+Node: Gawk I18N831474
+Node: I18N Summary832112
+Node: Debugger833451
+Node: Debugging834473
+Node: Debugging Concepts834914
+Node: Debugging Terms836771
+Node: Awk Debugging839346
+Node: Sample Debugging Session840238
+Node: Debugger Invocation840758
+Node: Finding The Bug842142
+Node: List of Debugger Commands848617
+Node: Breakpoint Control849949
+Node: Debugger Execution Control853641
+Node: Viewing And Changing Data857005
+Node: Execution Stack860370
+Node: Debugger Info862008
+Node: Miscellaneous Debugger Commands866025
+Node: Readline Support871217
+Node: Limitations872109
+Node: Debugging Summary874206
+Node: Arbitrary Precision Arithmetic875374
+Node: Computer Arithmetic876790
+Ref: table-numeric-ranges880391
+Ref: Computer Arithmetic-Footnote-1881250
+Node: Math Definitions881307
+Ref: table-ieee-formats884594
+Ref: Math Definitions-Footnote-1885198
+Node: MPFR features885303
+Node: FP Math Caution886974
+Ref: FP Math Caution-Footnote-1888024
+Node: Inexactness of computations888393
+Node: Inexact representation889341
+Node: Comparing FP Values890696
+Node: Errors accumulate891769
+Node: Getting Accuracy893202
+Node: Try To Round895861
+Node: Setting precision896760
+Ref: table-predefined-precision-strings897444
+Node: Setting the rounding mode899238
+Ref: table-gawk-rounding-modes899602
+Ref: Setting the rounding mode-Footnote-1903056
+Node: Arbitrary Precision Integers903235
+Ref: Arbitrary Precision Integers-Footnote-1908139
+Node: POSIX Floating Point Problems908288
+Ref: POSIX Floating Point Problems-Footnote-1912164
+Node: Floating point summary912202
+Node: Dynamic Extensions914394
+Node: Extension Intro915946
+Node: Plugin License917212
+Node: Extension Mechanism Outline918009
+Ref: figure-load-extension918437
+Ref: figure-register-new-function919917
+Ref: figure-call-new-function920921
+Node: Extension API Description922907
+Node: Extension API Functions Introduction924357
+Node: General Data Types929193
+Ref: General Data Types-Footnote-1934880
+Node: Memory Allocation Functions935179
+Ref: Memory Allocation Functions-Footnote-1938009
+Node: Constructor Functions938105
+Node: Registration Functions939839
+Node: Extension Functions940524
+Node: Exit Callback Functions942820
+Node: Extension Version String944068
+Node: Input Parsers944718
+Node: Output Wrappers954533
+Node: Two-way processors959049
+Node: Printing Messages961253
+Ref: Printing Messages-Footnote-1962330
+Node: Updating `ERRNO'962482
+Node: Requesting Values963222
+Ref: table-value-types-returned963950
+Node: Accessing Parameters964908
+Node: Symbol Table Access966139
+Node: Symbol table by name966653
+Node: Symbol table by cookie968633
+Ref: Symbol table by cookie-Footnote-1972772
+Node: Cached values972835
+Ref: Cached values-Footnote-1976339
+Node: Array Manipulation976430
+Ref: Array Manipulation-Footnote-1977528
+Node: Array Data Types977567
+Ref: Array Data Types-Footnote-1980224
+Node: Array Functions980316
+Node: Flattening Arrays984170
+Node: Creating Arrays991057
+Node: Extension API Variables995824
+Node: Extension Versioning996460
+Node: Extension API Informational Variables998361
+Node: Extension API Boilerplate999449
+Node: Finding Extensions1003265
+Node: Extension Example1003825
+Node: Internal File Description1004597
+Node: Internal File Ops1008664
+Ref: Internal File Ops-Footnote-11020322
+Node: Using Internal File Ops1020462
+Ref: Using Internal File Ops-Footnote-11022845
+Node: Extension Samples1023118
+Node: Extension Sample File Functions1024642
+Node: Extension Sample Fnmatch1032244
+Node: Extension Sample Fork1033726
+Node: Extension Sample Inplace1034939
+Node: Extension Sample Ord1036614
+Node: Extension Sample Readdir1037450
+Ref: table-readdir-file-types1038326
+Node: Extension Sample Revout1039137
+Node: Extension Sample Rev2way1039728
+Node: Extension Sample Read write array1040469
+Node: Extension Sample Readfile1042408
+Node: Extension Sample Time1043503
+Node: Extension Sample API Tests1044852
+Node: gawkextlib1045343
+Node: Extension summary1047993
+Node: Extension Exercises1051675
+Node: Language History1052397
+Node: V7/SVR3.11054054
+Node: SVR41056235
+Node: POSIX1057680
+Node: BTL1059069
+Node: POSIX/GNU1059803
+Node: Feature History1065432
+Node: Common Extensions1078530
+Node: Ranges and Locales1079854
+Ref: Ranges and Locales-Footnote-11084493
+Ref: Ranges and Locales-Footnote-21084520
+Ref: Ranges and Locales-Footnote-31084754
+Node: Contributors1084975
+Node: History summary1090515
+Node: Installation1091884
+Node: Gawk Distribution1092840
+Node: Getting1093324
+Node: Extracting1094148
+Node: Distribution contents1095790
+Node: Unix Installation1101855
+Node: Quick Installation1102538
+Node: Shell Startup Files1104956
+Node: Additional Configuration Options1106035
+Node: Configuration Philosophy1107776
+Node: Non-Unix Installation1110127
+Node: PC Installation1110585
+Node: PC Binary Installation1111911
+Node: PC Compiling1113759
+Ref: PC Compiling-Footnote-11116780
+Node: PC Testing1116885
+Node: PC Using1118061
+Node: Cygwin1122176
+Node: MSYS1122999
+Node: VMS Installation1123497
+Node: VMS Compilation1124289
+Ref: VMS Compilation-Footnote-11125511
+Node: VMS Dynamic Extensions1125569
+Node: VMS Installation Details1127253
+Node: VMS Running1129505
+Node: VMS GNV1132346
+Node: VMS Old Gawk1133080
+Node: Bugs1133550
+Node: Other Versions1137454
+Node: Installation summary1143667
+Node: Notes1144723
+Node: Compatibility Mode1145588
+Node: Additions1146370
+Node: Accessing The Source1147295
+Node: Adding Code1148731
+Node: New Ports1154903
+Node: Derived Files1159385
+Ref: Derived Files-Footnote-11164860
+Ref: Derived Files-Footnote-21164894
+Ref: Derived Files-Footnote-31165490
+Node: Future Extensions1165604
+Node: Implementation Limitations1166210
+Node: Extension Design1167458
+Node: Old Extension Problems1168612
+Ref: Old Extension Problems-Footnote-11170129
+Node: Extension New Mechanism Goals1170186
+Ref: Extension New Mechanism Goals-Footnote-11173546
+Node: Extension Other Design Decisions1173735
+Node: Extension Future Growth1175843
+Node: Old Extension Mechanism1176679
+Node: Notes summary1178441
+Node: Basic Concepts1179627
+Node: Basic High Level1180308
+Ref: figure-general-flow1180580
+Ref: figure-process-flow1181179
+Ref: Basic High Level-Footnote-11184408
+Node: Basic Data Typing1184593
+Node: Glossary1187921
+Node: Copying1213079
+Node: GNU Free Documentation License1250635
+Node: Index1275771

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 3e3976f7..e97b88b6 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -2015,8 +2015,10 @@ a @command{gawk} extension that you would like to share with the rest
of the world, please see @uref{http://awk.info/?contribute} for how to
contribute it to the web site.
+@ignore
As of this writing, this website is in search of a maintainer; please
contact me if you are interested.
+@end ignore
@ignore
Other links:
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index a9811763..c06bca82 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -1982,8 +1982,10 @@ a @command{gawk} extension that you would like to share with the rest
of the world, please see @uref{http://awk.info/?contribute} for how to
contribute it to the web site.
+@ignore
As of this writing, this website is in search of a maintainer; please
contact me if you are interested.
+@end ignore
@ignore
Other links:
diff --git a/profile.c b/profile.c
index 6ed38cb8..59542ab9 100644
--- a/profile.c
+++ b/profile.c
@@ -1237,6 +1237,26 @@ pp_parenthesize(NODE *sp)
sp->flags |= CAN_FREE;
}
+/* div_on_left_mul_on_right --- have / or % on left and * on right */
+
+static bool
+div_on_left_mul_on_right(int o1, int o2)
+{
+ OPCODE op1 = (OPCODE) o1;
+ OPCODE op2 = (OPCODE) o2;
+
+ switch (op1) {
+ case Op_quotient:
+ case Op_quotient_i:
+ case Op_mod:
+ case Op_mod_i:
+ return (op2 == Op_times || op2 == Op_times_i);
+
+ default:
+ return false;
+ }
+}
+
/* parenthesize --- parenthesize two nodes relative to parent node type */
static void
@@ -1246,9 +1266,11 @@ parenthesize(int type, NODE *left, NODE *right)
int lprec = prec_level(left->type);
int prec = prec_level(type);
- if (lprec < prec)
+ if (lprec < prec
+ || (lprec == prec && div_on_left_mul_on_right(left->type, type)))
pp_parenthesize(left);
- if (rprec < prec)
+ if (rprec < prec
+ || (rprec == prec && div_on_left_mul_on_right(type, right->type)))
pp_parenthesize(right);
}
diff --git a/test/ChangeLog b/test/ChangeLog
index b50b5612..9d49a888 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,9 @@
+2014-11-02 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (profile7): New test.
+ (profile6): Add missing @ in front of gawk run.
+ * profile7.awk, profile7.ok: New files.
+
2014-11-01 Arnold D. Robbins <arnold@skeeve.com>
* Makefile.am (profile6): Actually run profiling. Should make test
diff --git a/test/Makefile.am b/test/Makefile.am
index 447a89db..db1cb086 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -708,6 +708,8 @@ EXTRA_DIST = \
profile5.ok \
profile6.awk \
profile6.ok \
+ profile7.awk \
+ profile7.ok \
prt1eval.awk \
prt1eval.ok \
prtoeval.awk \
@@ -1021,7 +1023,7 @@ GAWK_EXT_TESTS = \
manyfiles match1 match2 match3 mbstr1 \
nastyparm next nondec nondec2 \
patsplit posix printfbad1 printfbad2 printfbad3 printhuge procinfs \
- profile1 profile2 profile3 profile4 profile5 profile6 pty1 \
+ profile1 profile2 profile3 profile4 profile5 profile6 profile7 pty1 \
rebuf regnul1 regnul2 regx8bit reginttrad reint reint2 rsgetline rsglstdin rsstart1 \
rsstart2 rsstart3 rstest6 shadow sortfor sortu split_after_fpat \
splitarg4 strftime \
@@ -1704,7 +1706,13 @@ profile5:
profile6:
@echo $@
- $(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
+ @$(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
+ @sed 1,2d < ap-$@.out > _$@; rm ap-$@.out
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
+profile7:
+ @echo $@
+ @$(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
@sed 1,2d < ap-$@.out > _$@; rm ap-$@.out
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
diff --git a/test/Makefile.in b/test/Makefile.in
index 71f0dd60..ab8aebe3 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -954,6 +954,8 @@ EXTRA_DIST = \
profile5.ok \
profile6.awk \
profile6.ok \
+ profile7.awk \
+ profile7.ok \
prt1eval.awk \
prt1eval.ok \
prtoeval.awk \
@@ -1266,7 +1268,7 @@ GAWK_EXT_TESTS = \
manyfiles match1 match2 match3 mbstr1 \
nastyparm next nondec nondec2 \
patsplit posix printfbad1 printfbad2 printfbad3 printhuge procinfs \
- profile1 profile2 profile3 profile4 profile5 profile6 pty1 \
+ profile1 profile2 profile3 profile4 profile5 profile6 profile7 pty1 \
rebuf regnul1 regnul2 regx8bit reginttrad reint reint2 rsgetline rsglstdin rsstart1 \
rsstart2 rsstart3 rstest6 shadow sortfor sortu split_after_fpat \
splitarg4 strftime \
@@ -2128,7 +2130,13 @@ profile5:
profile6:
@echo $@
- $(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
+ @$(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
+ @sed 1,2d < ap-$@.out > _$@; rm ap-$@.out
+ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
+
+profile7:
+ @echo $@
+ @$(AWK) --profile=ap-$@.out -f "$(srcdir)"/$@.awk > /dev/null
@sed 1,2d < ap-$@.out > _$@; rm ap-$@.out
@-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@
diff --git a/test/profile7.awk b/test/profile7.awk
new file mode 100644
index 00000000..454694f9
--- /dev/null
+++ b/test/profile7.awk
@@ -0,0 +1,12 @@
+BEGIN {
+ print 1 / 10 * 10
+ print 1 / (10 * 10)
+ print 1 % 10 * 10
+ print 1 % (10 * 10)
+ print (10 * 5) / 2
+ print 10 * (5 / 2)
+ a = 5
+ b = 3
+ print a - 1 - b
+ print a + 1 - b
+}
diff --git a/test/profile7.ok b/test/profile7.ok
new file mode 100644
index 00000000..d65afa86
--- /dev/null
+++ b/test/profile7.ok
@@ -0,0 +1,15 @@
+ # BEGIN rule(s)
+
+ BEGIN {
+ 1 print 1 / 10 * 10
+ 1 print 1 / (10 * 10)
+ 1 print 1 % 10 * 10
+ 1 print 1 % (10 * 10)
+ 1 print 10 * 5 / 2
+ 1 print 10 * 5 / 2
+ 1 a = 5
+ 1 b = 3
+ 1 print a - 1 - b
+ 1 print a + 1 - b
+ }
+