--- /dev/null
+#!/usr/bin/awk -f
+
+BEGIN {
+ v["_"] = ""
+ n = 0
+ t = 0
+}
+
+!/^[0-9+ *]*$/ {
+ print "error line", NR, $0
+}
+
+/[0-9]/ {
+ for (i = 1; i <= NF; i++) {
+ v[i "," n] = $(i)
+ }
+ n++
+}
+
+/[*+]/ {
+ for (i = 1; i <= NF; i++) {
+ r = ($(i) == "+") ? 0 : 1
+ for (j = 0; j < n; j++) {
+ r = ($(i) == "+") ? r + v[i "," j] : r * v[i "," j]
+ #printf " %s %s", v[i "," j], $(i)
+ }
+ #print "\b=", r
+ t += r
+ }
+}
+
+END {
+ print "total", t
+}
--- /dev/null
+155 1 62 1925 984 83 723 832 57 1 134 44 6 55 95 4 3 4146 88 7 63 249 6 79 933 87 829 3 89 533 99 5575 38 27 9729 8 5495 74 8115 6 291 13 7 52 427 85 8 63 18 61 37 14 83 49 6 52 846 46 8 7 3 349 134 8 74 4 641 4649 89 88 63 31 53 87 166 1266 87 75 8698 27 199 21 5 794 84 293 882 33 7 48 54 62 51 49 16 73 37 5 27 47 85 869 1 772 83 48 5 12 6941 29 71 12 2 7 64 7 97 61 2314 856 1 3 557 16 84 32 249 35 2 262 355 8177 956 225 167 122 68 16 53 63 31 8 46 122 976 698 4 45 66 7235 7443 17 7366 32 2288 45 398 495 74 45 885 51 28 9 21 39 513 16 353 9 12 414 9 77 413 953 2 3 4 644 52 81 1637 6 43 7 69 9 511 47 937 27 593 7 2 56 749 46 152 4 12 25 6574 686 89 528 838 81 56 3 81 77 44 254 8 427 475 921 386 2338 2 6114 2 35 445 871 698 4 64 52 23 81 12 39 4172 3 16 14 213 48 47 9 54 33 5 9485 82 614 427 36 45 74 2 48 378 9 291 4 75 741 545 6 15 939 2 6358 2315 3418 531 97 21 23 355 36 2873 62 55 54 88 92 73 44 87 2792 9 79 523 34 29 86 7 388 4153 8 96 9 19 1 27 713 3 4 85 253 661 49 181 71 61 7 74 12 744 948 8 565 42 83 76 163 28 63 6835 32 4597 34 781 721 87 391 633 3 6466 3554 394 43 686 6 33 53 1 4114 788 434 41 31 726 8 4 837 7 264 46 1 27 89 8 298 5 29 191 76 3 377 45 3 15 5 3 62 58 1138 839 7 55 2 191 29 2 646 38 68 29 3 3233 84 658 84 828 757 6 47 416 96 671 56 732 51 68 92 2 124 915 27 4666 2 63 962 895 1 214 771 27 6111 4832 1 4 91 3 38 4878 44 8391 8748 354 23 79 72 9 6 839 13 2 15 7 32 835 455 72 4 319 9441 44 94 58 7 266 272 71 99 1369 63 31 67 989 2 99 3 876 333 45 8 752 9 3 996 5 64 67 62 1 746 43 752 154 9 471 689 113 817 8 898 924 42 1 74 1432 36 756 42 37 5 4 67 82 293 76 215 54 44 6 7 88 15 49 29 233 88 18 31 746 512 118 34 8 843 7785 411 38 675 19 75 39 97 9 255 7 942 88 1 462 1 483 814 513 438 98 89 381 963 3 46 67 983 247 292 91 668 8 31 265 647 2789 8519 91 66 246 918 47 68 931 2 684 862 8 278 611 84 7554 357 92 1276 239 785 497 79 696 719 1139 9 588 685 23 8 91 97 12 56 1681 589 6936 19 795 781 88 31 68 63 921 466 32 5 41 828 743 743 72 61 9 847 98 9742 46 485 3 85 33 54 65 8744 58 486 964 86 656 96 98 232 276 35 957 19 332 3571 146 73 93 9 952 23 89 41 91 5992 459 481 9 94 84 87 559 43 383 3 25 882 84 292 2 59 28 35 843 944 14 27 54 4 7 924 1 9946 785 676 8996 1 57 43 2 14 8239 885 142 5383 48 429 32 593 49 5866 95 34 9 166 926 34 76 48 1 94 19 72 4 45 64 47 339 94 8 66 99 21 2114 32 56 416 91 7213 665 22 333 95 6695 827 325 993 68 84 17 79 3 113 851 472 874 2798 1 5871 411 9 27 97 6829 87 453 56 2346 96 53 16 52 7 9 15 63 76 476 45 438 25 88 2 61 4 36 28 32 277 1 7 31 288 566 97 24 19 1671 297 539 25 24 2 9 1711 9 19 1 15 853 8 7122 89 491 57 32 156 45 742 18 587 773 6 752 5 2225 413 214 786 3 2 363 2957 6 2 797 6773 6715 2666 151 51 3 9 82 759 78 882 7523 75 3691 163 14 989 146 6 4 44 746 6 3 66 651 7 74 17 6688 75 954 574 9 8 224 5 61 7443 59 658 264 73 83 69 23 66 742 2 94 479 58 4426 854 8397 86 6 11 2931 9 7 2 561 73 82 472 443 65 45 5 89 1326 651 791 92 9416 16 91 2692 58 978 1469 151 85 49 6 477 34 18 66 9569 6 92 197 127 15 9 66 9 8239 61 98 98 51 39 59 43 535 1 39 3 25 789 52 2 2 912 88 92 644 8446 71 57 3 27 698 26 3 38 1 158 768 4367 8 48 5 9 9388 57 2 357 4 26 588 3 59 81 43 8 893 522 746 93 37 3 778 94 536 76 3 25 32 26 31 447 66 27 68 1 27 32 44 659 13 27 7 85 5542 454 3 92 761 79 832 5
+614 4 39 3446 379 675 574 352 75 58 447 52 285 39 987 4 97 4371 22 177 14 563 53 43 459 94 161 163 94 184 448 4583 91 63 15 75 1232 19 8224 8 498 75 3734 595 885 268 14 26 33 595 76 72 19 52 13 12 263 41 1 25 1 327 224 65 76 86 932 6212 15 49 87 27 57 87 575 6337 85 31 3466 626 397 87 27 675 81 962 645 69 86 33 61 54 23 44 51 67 67 9 91 98 78 952 699 666 88 914 44 44 4963 33 117 75 8 8 13 13 72 47 2249 465 2 19 364 67 99 576 738 72 23 637 755 3435 695 468 125 112 98 796 59 42 17 1 78 683 957 3472 448 12 451 244 2312 32 8689 83 4796 72 391 882 66 55 568 23 266 95 47 28 256 16 295 69 68 7558 378 97 469 816 95 493 24 329 32 66 2668 94 66 5 23 69 1 2 946 88 214 85 97 46 939 18 544 95 23 91 589 122 6 673 597 46 52 93 12 8 686 569 93 934 111 681 179 9571 9 3744 4 47 298 451 793 775 98 98 28 29 42 69 1792 96 922 14 194 22 86 618 644 13 823 4372 68 716 239 42 71 38 4 61 444 22 388 3 37 314 315 96 24 119 32 1628 2667 11 848 29 274 48 945 16 5492 34 52 46 74 16 61 235 86 466 3 11 963 95 93 55 822 185 6644 55 21 851 77 1 8 564 4 39 12 552 1796 95 66 287 25 92 93 21 618 589 6 881 1627 88 47 822 95 78 667 8 5955 75 87 638 69 787 148 56 6573 7572 455 45 462 91 57 5 57 7872 484 748 64 7 851 41 362 796 77 842 12 6 689 91 4 16 85 66 391 2994 92 6792 83 6 44 31 25 56 14 1333 871 32 4 67 525 1288 47 535 87 31 73 19 5275 6454 518 71 6456 587 56 89 821 71 86 55 554 75 23 24 62 851 457 16 2615 79 37 424 368 82 397 952 25 2268 177 41 343 5 5 6638 6142 53 2132 2317 36 95 56 83 37 58 853 39 22 11 1493 639 627 785 969 7 498 9774 93 43 46 43 749 162 537 8822 8739 35 99 66 619 6 77 1 734 293 23 26 41 27 36 467 36 52 97 816 289 99 71 435 797 849 334 939 937 815 59 687 598 14 61 745 7882 51 649 764 54 84 9 52 952 481 762 135 52 962 9 33 55 97 56 39 81 22 97 367 5167 973 749 42 355 553 1593 519 97 784 869 94 88 52 4 468 38 991 63 41 334 9 916 983 825 819 18 8275 85 611 732 15 57 5863 6836 999 158 972 33 13 3647 56 6958 382 55 78 219 953 57 29 27 216 222 817 16 56 946 87 3396 146 63 8627 538 381 486 882 541 1524 2151 8 894 8578 962 4 94 59 14 47 4311 541 1584 6188 725 584 99 64 35 449 71 72 153 611 4 3577 624 245 77 15 64 996 9153 1685 478 592 7 51 63 431 754 688 18 46 871 78 1394 349 23 312 985 95 774 619 285 3296 292 88 28 41 522 158 8 28 26 3258 512 167 77 744 79 783 855 13 592 73 22 687 68 524 52 33 98 19 463 246 129 26 13 2 23 726 52 7159 456 686 6644 1 42 7 1 46 9261 711 483 1189 1 85 73 969 13 6842 96 457 1 712 422 81 29 25 69 56 47 678 64 18 75 65 83 428 782 36 49 59 2276 35 22 228 96 994 868 48 976 22 445 336 779 217 247 3547 11 185 38 824 251 814 2615 3955 91 4265 887 565 996 44 8825 827 158 99 7714 312 67 52 19 56 84 97 73 61 778 41 839 37 58 84 24 49 32 62 77 234 598 27 33 171 248 46 68 79 8345 133 988 11 32 16 9 4818 14 516 79 71 811 9 7833 983 178 55 46 44 25 946 443 638 921 42 167 34 2221 429 235 287 78 16 63 4143 84 82 617 7873 5813 2232 989 174 4 48 74 346 37 724 3461 27 22 667 94 717 973 441 92 74 399 5 8 26 592 17 62 46 7832 722 955 345 97 93 73 7 41 3271 22 881 653 67 37 86 6 82 574 19 59 11 725 1337 466 485 36 3 82 8113 3 511 5 742 9 19 968 92 545 81 37 8 1284 586 976 5147 6262 481 36 8151 83 191 5519 935 414 47 39 267 442 37 34 7176 7 879 494 728 4 12 39 62 8296 89 5879 56 93 36 46 35 547 253 96 5 73 275 48 88 12 684 21 84 7356 7291 627 76 43 58 454 29 7149 42 28 624 6431 5172 98 99 1 1 53 9238 72 372 22 16 479 13 3 63 69 66 37 35 587 468 225 13 837 9 834 976 34 26 16 56 24 444 44 11 89 7 31 8 16 646 397 323 45 91 715 261 845 47 795 49 582 4
+89 3 85 486 42 855 95 654 776 32 163 36 348 92 131 22 95 866 3 269 44 9 591 45 41 144 142 959 36 576 576 227 3 68 8 49 8515 37 9552 51 579 62 1535 511 248 4778 76 66 71 267 62 11 78 421 973 451 549 36 43 48 246 41 39 29 626 355 715 4545 78 74 15 52 28 16 541 2744 394 65 5927 9843 632 51 36 89 51 18 846 37 136 34 67 91 648 81 41 27 59 3 571 9136 5 445 996 831 34 168 686 31 146 95 169 2 62 45 31 698 67 68 581 978 86 664 865 88 34 2139 776 9 64 929 547 223 4798 5 1377 443 43 412 33 43 81 81 19 271 62 5836 298 34 465 29 9846 3 9678 68 666 61 69 1395 47 3 552 2 562 35 521 23 231 74 8 4161 17 7727 546 84 514 535 55 725 63 454 6 13 6545 729 59 93 44 94 4 7 125 25 515 9781 34 2 886 997 352 67 15 49 853 754 5 724 433 6 6 99 7 3 157 934 84 293 73 185 52 671 5 1263 82 84 218 135 351 474 3 25 91 7 52 78 9823 65 845 44 477 99 37 1154 253 27 774 594 51 677 691 5 29 74 72 38 285 39 63 17 49 286 171 825 497 36 133 113 44 32 394 47 157 47 15 481 366 98 65 72 27 24 27 658 66 83 8 79 876 4 12 83 681 78 92 4141 98 919 96 42 2 766 31 96 33 754 6267 38 35 9556 64 25 61 29 655 54 49 236 9918 42 46 295 58 976 69 5 5396 58 17 475 8 212 674 23 298 2235 85 69 423 18 2577 4 17 168 471 99 24 1 47 343 214 497 44 1828 9 561 349 64 4 16 56 92 197 6283 47 1444 47 19 49 64 73 87 99 4568 9 17 3 14 61 1279 531 573 33 25 17 93 7166 3879 579 94 3155 837 87 57 619 63 23 4223 315 49 46 37 1753 2 581 11 8372 92 14 124 32 39 628 75 42 4348 89 785 785 3 95 6642 4818 88 662 4934 56 38 86 53 23 98 7 85 14 876 8168 375 59 992 953 28 367 118 81 23 2 68 156 26 9779 8195 2925 97 7 32 68 8 62 88 423 144 33 55 98 43 526 4 915 4 56 8836 746 3 1 66 193 975 922 413 611 846 41 74 113 82 121 291 9614 813 976 995 46 563 93 91 894 828 562 3642 1 378 4 93 773 39 6346 81 6 69 62 647 3884 989 919 196 927 888 2349 4491 716 92 444 29 621 116 89 48 27 158 521 76 371 6 59 892 854 4994 49 2878 61 791 541 26 8 7282 2851 2368 312 518 52 94 6377 5 2816 1 41 597 276 57 81 4 5 239 136 95 7257 91 184 31 119 697 35 7196 221 694 24 616 762 7652 1822 9 75 5544 354 66 26 378 69 87 13 664 867 1595 277 522 14 37 51 967 1 59 676 666 7 7339 545 6 96 62 2421 747 6675 9358 762 36 4 81 18 452 166 17 96 59 784 65 1825 331 74 98 71 42 131 929 65 7228 7 18 26 933 236 135 2 95 184 88 36 382 37 333 6 598 434 924 442 853 8 781 49 195 14 37 49 86 197 95 537 94 6 94 66 95 72 9726 948 51 47 93 45 4 15 64 2122 629 981 746 1 25 13 554 83 875 863 1468 8 5 899 372 35 3 32 48 67 239 65 97 71 94 85 565 592 61 62 87 5374 86 897 925 73 853 653 38 1 79 288 189 126 21 1819 8615 3 942 49 619 644 118 3835 8351 191 5639 657 438 471 582 7849 938 395 41 3716 461 442 36 1 511 51 3 9 27 551 3 313 86 5 79 99 568 76 45 63 96 1663 81 3 441 476 96 6782 69 7 184 45 47 61 954 84 4732 64 761 34 69 247 4 2943 111 354 262 89 63 44 29 7496 541 51 25 869 71 563 12 538 39 84 52 98 6486 19 428 163 6367 8336 113 65 556 37 75 89 92 92 392 4183 45 21 388 925 239 23 381 628 7 672 51 261 38 582 54 5 44 51 4841 75 152 421 48 6 6 56 828 78 369 962 71 57 83 1 92 763 73 39 22 1937 1494 62 568 493 192 98 6596 16 543 42 4 2 37 483 11 428 18 53 8 852 789 311 2734 5112 234 33 5391 12 63 1988 591 359 52 46 129 611 7 37 413 87 988 73 976 5 36 53 84 9382 572 7153 32 91 32 86 945 96 123 5 44 25 162 4 99 39 881 85 5 7777 555 862 63 549 11 996 48 9274 71 29 27 5495 236 223 741 27 14 4 1763 62 63 85 93 372 93 8 11 52 462 4 4 34 119 383 16 215 3 682 364 77 41 46 4 97 16 74 27 81 39 61 3 49 35 1759 6318 84 41 918 62 281 66 449 36 889 7
+18 21 21 58 46 921 77 499 928 12 621 23 7138 741 361 15 44 476 7 265 15 5 654 14 26 649 284 136 97 48 329 742 5 6 9 869 3 98 6977 48 35 96 8962 462 1 5265 99 85 19 694 416 9 1 392 923 326 4 1 29 73 7379 8 7 23 437 584 616 428 695 29 43 15 7 71 119 526 398 96 49 2656 196 426 827 42 619 2 69 27 441 74 9 55 979 31 18 73 74 43 463 5711 3 21 698 67 53 946 964 78 213 8 136 6 16 45 48 984 47 77 759 554 38 258 45 64 96 3686 648 1 85 626 342 14 3497 5 3774 339 9 436 3 53 61 96 84 569 9 1612 683 95 129 49 77 2 2659 46 86 9 4 9112 62 9 5 9 224 77 189 97 8 21 7 9836 34 9339 778 93 5 94 32 688 65 997 8 58 2625 896 66 27 26 28 3 3 84 23 568 4955 51 5 999 696 717 911 72 41 82 35 5 858 699 4 1 24 8 6 8193 22 48 19 58 94 65 4 36 3781 14 26 789 5 12 212 1 39 76 6 1 5 5218 56 583 6 46 31 4 3294 624 23 178 61 88 22 76 2 37 81 34 1 492 78 6 56 53 43 628 318 216 3 129 294 71 93 377 6 364 37 25 275 783 2 92 45 36 5 35 959 76 1 57 39 454 3 11 9 128 7 2 2949 7 252 34 36 7 532 32 69 33 3351 4659 83 3 1266 83 35 4 9 371 53 866 63 6265 11 1 877 17 319 2 7 6455 63 9 675 5 57 78 65 565 457 59 3 9969 27 7836 1 39 2 44 54 162 7 34 275 328 334 26 9876 4 671 526 79 82 1 14 78 3 2822 53 7474 715 85 42 68 25 5 88 5358 1 393 9 69 47 7792 722 953 65 3 6 67 14 4787 491 64 5963 13 824 53 755 4 52 1835 22 7 73 37 9475 9 5 45 5637 69 14 247 2 16 58 9 77 8271 17 212 452 3 91 4227 5932 72 6 7251 35 7 67 94 444 318 5 19 71 914 2883 513 81 2 511 38 85 15 7 32 8 79 219 14 5682 4239 892 13 1 54 89 42 5 18 852 573 85 35 5 76 412 6 431 9 37 1319 261 7 6 27 63 181 13 573 738 272 58 3 37 45 623 951 37 745 74 948 84 627 13 28 598 9139 262 2817 7 448 63 71 427 5 7359 9 9 9 15 133 7653 73 988 879 517 89 77 4491 588 34 762 54 463 547 33 53 54 98 324 85 679 59 3 87 81 1258 2 6111 36 579 531 16 2 6376 1268 8861 636 593 621 81 8175 5 255 8 48 318 41 74 81 6 6 884 74 24 2584 92 97 27 36 31 56 96 94 547 49 369 76 8673 28 87 19 5854 126 61 41 538 56 82 37 574 55 3951 195 745 5 71 21 722 5 1 182 935 4 1226 281 4 95 74 2597 556 3355 7762 517 75 47 84 8 645 221 5 14 2 4 75 4541 827 2 53 7 1 717 699 6 739 6 95 14 951 638 984 2 58 252 1 87 962 14 849 6 321 64 317 9871 591 1 9414 3 415 72 9 63 82 53 3 988 3 2 63 16 12 78 59 33 75 53 73 61 9 95 7 7131 894 89 653 4 48 8 74 63 1 793 6952 19 2 653 966 36 4 13 6 8 695 22 5 33 79 55 557 914 92 82 547 478 23 792 1 6 17 25 1 6 26 2 31 29 1 2895 4838 1 817 98 626 94 67 5722 3 583 413 383 883 132 162 6811 746 3 8 533 197 731 24 9 236 47 8 1 47 922 6 7 3 3 65 76 565 3 97 81 14 5263 19 1 665 891 59 5139 6 5 344 4 23 8 355 34 67 73 256 89 68 77 39 672 593 424 415 54 3 886 57 4743 13 4 71 353 31 28 4 57 9 85 81 6 799 41 281 889 657 94 896 2 736 45 96 53 83 77 59 333 67 5 919 424 613 36 134 562 4 139 96 179 5 756 45 8 76 7 5981 9 74 867 71 3 82 2 725 38 83 19 22 2 29 9 37 14 96 5 77 6367 7825 6 47 1423 171 7 12 744 582 19 6 5 44 55 46 236 72 88 5 78 537 27 4432 36 757 89 835 59 9 667 6638 159 57 91 696 739 3 13 54 75 581 21 71 5 91 7 652 4794 386 8243 75 19 68 13 121 6 169 4 64 3 412 4 14 83 55 1 5 7274 169 161 53 484 4 234 96 7423 94 48 14 6683 769 812 981 64 53 6 9837 23 48 88 22 37 48 5 54 27 472 8 9 14 526 877 88 282 4 42 491 69 52 25 7 63 24 41 74 36 37 5 4 99 7 4419 5711 33 7 723 25 112 74 219 73 146 424
+* * * + * * * * + + + + + * + * + + * * * * + * + + + + * * + + + * + + + + + * * + + * + + * * + * + + + * * * + * * * + * * * + * + + * * + + * + + + * + + + * * * * * + * + * + + * * * * + * * + + + * * + * * * * + + * * * * + * + + + * + * + * * + * * * + + + + + + * * * * * * + * * * + + * + + + + + * + * + + * + + * + * + * + * + + * + + * + * * * + + * * + + * + * * * * + + + + + + * * * * + + + * * + * * * + + * + * * * * * + + + + * + * * * + + * * * * * + * + * * * + + * + + + + * + * + + + * * * * * + + * * * + + + + + + * + + * * + * * * * + + + * + + * + * * * * * + + + * + * + * + * * + + * * + * * + + * * * * + + * * + * + + + + * * * + * * + + + * + * + * * + * * * + * * + * + + * * * + + * * * * + + + + * + * * + + + * * * * * + * * * * * * + + * + + + * * * + + + + * + + + * + * + * + + * * * * + + + + + * * + + * + + * * * + * + * * + + + * * + * + + + + * + + + * + + + * * * * * * * + + * + * + * + + + * + + * + * * + * * * * + * * + * * + * + + + * * + + + * + + * * * + * + * + * + + + * * * * + + + + * + * * + * + * + * * + * * * * + * + * + * + * + + + * * + * + + + + * * * + * * + * * * + * + + + * * + * * * + + + + + + + + * + + * * + + + + * * * + * * * * + + * + * + * * + * + + + + + + * * + + + + * + + + + + + + * * + + * + * * * * * * * + + * * * + * + * + * * + * * * + + + + + + + + * + + + + * * + + + * + * + + + + * + * * * + * + * + * + * + + + * * * + + + + + * * * * + * + + + + * + * * + + + + + + + + * + + * + + * + + + * * + + * + + + * + * + * + + + * * * + * * * * * + * * + * * + * + + + + + * * + + * + * * * * + + + + * * * * * * + * * + + * + * + * * * + + * + * + + + * * * * * * * + + + + * * * * * * * * * * + + * + + + + + * * * * + + + * * * * * + * * * * + + + + * + + * * + + * * * * * + * * * * * + + * + + * * + * + + + * * + * + * * + * + + + * + + + + * + + * * * + * + * * * * * + + + * * + + * + + * * * + * + * + + * * * + + + * * + * * + * * * * * * * * + + * + * + + * + * + * * + * + * * + * + + + + + * * * * * * *
--- /dev/null
+123 328 51 64
+ 45 64 387 23
+ 6 98 215 314
+* + * +
--- /dev/null
+#!/usr/bin/awk -f
+
+BEGIN {
+ FS = ""
+ v["_"] = ""
+ t = 0
+}
+
+!/^[0-9+ *]*$/ {
+ print "error line", NR, $0
+}
+
+/[0-9]/ {
+ for (i = 1; i <= NF; i++) {
+ v[i] = v[i] $(i)
+ }
+}
+
+/[*+]/ {
+ for (i = 1; i <= NF; i++) {
+ if (v[i] ~ /[0-9]/) {
+ if ($(i) != " ") {
+ s = $(i)
+ r = (s == "+") ? 0 : 1
+ }
+ r = (s == "+") ? r + v[i] : r * v[i]
+ printf " %s %s", v[i], s
+ } else {
+ print "\b=", r
+ t += r
+ }
+ }
+ print "\b=", r
+ t += r
+}
+
+END {
+ print "total", t
+}