<?php $input=<<<INPUT many amaze 99 time such scare bottles-of-beer such scream on-the-wall many despair 13 time such fail take-one-down-pass-it-around wow so amaze so scare so scream so despair! so amaze so scare so despair! much amaze so fail so despair! so amaze so scare so scream so despair! so despair! very amaze wow INPUT; //pre-process input //split into instructions by newlines $loopstartpoint= -1; $activevariable=""; { switch($tokens[0]) { case "wow": if($loopstartpoint<0) { $loopstartpoint=$instrpointer+1; } else { if($variables[ $activevariable ]) { $instrpointer=$loopstartpoint; } else { $loopstartpoint= -1; } } break; case "so": { } else { echo $variables[ $tokens[1] ]; echo " "; } break; case "very": $activevariable=$tokens[1]; break; case "much": $variables[ $tokens[1] ]=0; { $variables[ $tokens[1] ]--; } else { for($loop=0;$loop<$tokens[2];$loop++) { $variables[ $tokens[1] ]--; } } $activevariable=$tokens[1]; break; case "many": $variables[ $tokens[1] ]=0; { $variables[ $tokens[1] ]++; } else { for($loop=0;$loop<$tokens[2];$loop++) { $variables[ $tokens[1] ]++; } } $activevariable=$tokens[1]; break; case "such": $variables[ $tokens[1] ]=$tokens[2]; $activevariable=$tokens[1]; break; } } ?>
Standard input is empty
99 bottles-of-beer on-the-wall 99 bottles-of-beer take-one-down-pass-it-around 98 bottles-of-beer on-the-wall 98 bottles-of-beer on-the-wall 98 bottles-of-beer take-one-down-pass-it-around 97 bottles-of-beer on-the-wall 97 bottles-of-beer on-the-wall 97 bottles-of-beer take-one-down-pass-it-around 96 bottles-of-beer on-the-wall 96 bottles-of-beer on-the-wall 96 bottles-of-beer take-one-down-pass-it-around 95 bottles-of-beer on-the-wall 95 bottles-of-beer on-the-wall 95 bottles-of-beer take-one-down-pass-it-around 94 bottles-of-beer on-the-wall 94 bottles-of-beer on-the-wall 94 bottles-of-beer take-one-down-pass-it-around 93 bottles-of-beer on-the-wall 93 bottles-of-beer on-the-wall 93 bottles-of-beer take-one-down-pass-it-around 92 bottles-of-beer on-the-wall 92 bottles-of-beer on-the-wall 92 bottles-of-beer take-one-down-pass-it-around 91 bottles-of-beer on-the-wall 91 bottles-of-beer on-the-wall 91 bottles-of-beer take-one-down-pass-it-around 90 bottles-of-beer on-the-wall 90 bottles-of-beer on-the-wall 90 bottles-of-beer take-one-down-pass-it-around 89 bottles-of-beer on-the-wall 89 bottles-of-beer on-the-wall 89 bottles-of-beer take-one-down-pass-it-around 88 bottles-of-beer on-the-wall 88 bottles-of-beer on-the-wall 88 bottles-of-beer take-one-down-pass-it-around 87 bottles-of-beer on-the-wall 87 bottles-of-beer on-the-wall 87 bottles-of-beer take-one-down-pass-it-around 86 bottles-of-beer on-the-wall 86 bottles-of-beer on-the-wall 86 bottles-of-beer take-one-down-pass-it-around 85 bottles-of-beer on-the-wall 85 bottles-of-beer on-the-wall 85 bottles-of-beer take-one-down-pass-it-around 84 bottles-of-beer on-the-wall 84 bottles-of-beer on-the-wall 84 bottles-of-beer take-one-down-pass-it-around 83 bottles-of-beer on-the-wall 83 bottles-of-beer on-the-wall 83 bottles-of-beer take-one-down-pass-it-around 82 bottles-of-beer on-the-wall 82 bottles-of-beer on-the-wall 82 bottles-of-beer take-one-down-pass-it-around 81 bottles-of-beer on-the-wall 81 bottles-of-beer on-the-wall 81 bottles-of-beer take-one-down-pass-it-around 80 bottles-of-beer on-the-wall 80 bottles-of-beer on-the-wall 80 bottles-of-beer take-one-down-pass-it-around 79 bottles-of-beer on-the-wall 79 bottles-of-beer on-the-wall 79 bottles-of-beer take-one-down-pass-it-around 78 bottles-of-beer on-the-wall 78 bottles-of-beer on-the-wall 78 bottles-of-beer take-one-down-pass-it-around 77 bottles-of-beer on-the-wall 77 bottles-of-beer on-the-wall 77 bottles-of-beer take-one-down-pass-it-around 76 bottles-of-beer on-the-wall 76 bottles-of-beer on-the-wall 76 bottles-of-beer take-one-down-pass-it-around 75 bottles-of-beer on-the-wall 75 bottles-of-beer on-the-wall 75 bottles-of-beer take-one-down-pass-it-around 74 bottles-of-beer on-the-wall 74 bottles-of-beer on-the-wall 74 bottles-of-beer take-one-down-pass-it-around 73 bottles-of-beer on-the-wall 73 bottles-of-beer on-the-wall 73 bottles-of-beer take-one-down-pass-it-around 72 bottles-of-beer on-the-wall 72 bottles-of-beer on-the-wall 72 bottles-of-beer take-one-down-pass-it-around 71 bottles-of-beer on-the-wall 71 bottles-of-beer on-the-wall 71 bottles-of-beer take-one-down-pass-it-around 70 bottles-of-beer on-the-wall 70 bottles-of-beer on-the-wall 70 bottles-of-beer take-one-down-pass-it-around 69 bottles-of-beer on-the-wall 69 bottles-of-beer on-the-wall 69 bottles-of-beer take-one-down-pass-it-around 68 bottles-of-beer on-the-wall 68 bottles-of-beer on-the-wall 68 bottles-of-beer take-one-down-pass-it-around 67 bottles-of-beer on-the-wall 67 bottles-of-beer on-the-wall 67 bottles-of-beer take-one-down-pass-it-around 66 bottles-of-beer on-the-wall 66 bottles-of-beer on-the-wall 66 bottles-of-beer take-one-down-pass-it-around 65 bottles-of-beer on-the-wall 65 bottles-of-beer on-the-wall 65 bottles-of-beer take-one-down-pass-it-around 64 bottles-of-beer on-the-wall 64 bottles-of-beer on-the-wall 64 bottles-of-beer take-one-down-pass-it-around 63 bottles-of-beer on-the-wall 63 bottles-of-beer on-the-wall 63 bottles-of-beer take-one-down-pass-it-around 62 bottles-of-beer on-the-wall 62 bottles-of-beer on-the-wall 62 bottles-of-beer take-one-down-pass-it-around 61 bottles-of-beer on-the-wall 61 bottles-of-beer on-the-wall 61 bottles-of-beer take-one-down-pass-it-around 60 bottles-of-beer on-the-wall 60 bottles-of-beer on-the-wall 60 bottles-of-beer take-one-down-pass-it-around 59 bottles-of-beer on-the-wall 59 bottles-of-beer on-the-wall 59 bottles-of-beer take-one-down-pass-it-around 58 bottles-of-beer on-the-wall 58 bottles-of-beer on-the-wall 58 bottles-of-beer take-one-down-pass-it-around 57 bottles-of-beer on-the-wall 57 bottles-of-beer on-the-wall 57 bottles-of-beer take-one-down-pass-it-around 56 bottles-of-beer on-the-wall 56 bottles-of-beer on-the-wall 56 bottles-of-beer take-one-down-pass-it-around 55 bottles-of-beer on-the-wall 55 bottles-of-beer on-the-wall 55 bottles-of-beer take-one-down-pass-it-around 54 bottles-of-beer on-the-wall 54 bottles-of-beer on-the-wall 54 bottles-of-beer take-one-down-pass-it-around 53 bottles-of-beer on-the-wall 53 bottles-of-beer on-the-wall 53 bottles-of-beer take-one-down-pass-it-around 52 bottles-of-beer on-the-wall 52 bottles-of-beer on-the-wall 52 bottles-of-beer take-one-down-pass-it-around 51 bottles-of-beer on-the-wall 51 bottles-of-beer on-the-wall 51 bottles-of-beer take-one-down-pass-it-around 50 bottles-of-beer on-the-wall 50 bottles-of-beer on-the-wall 50 bottles-of-beer take-one-down-pass-it-around 49 bottles-of-beer on-the-wall 49 bottles-of-beer on-the-wall 49 bottles-of-beer take-one-down-pass-it-around 48 bottles-of-beer on-the-wall 48 bottles-of-beer on-the-wall 48 bottles-of-beer take-one-down-pass-it-around 47 bottles-of-beer on-the-wall 47 bottles-of-beer on-the-wall 47 bottles-of-beer take-one-down-pass-it-around 46 bottles-of-beer on-the-wall 46 bottles-of-beer on-the-wall 46 bottles-of-beer take-one-down-pass-it-around 45 bottles-of-beer on-the-wall 45 bottles-of-beer on-the-wall 45 bottles-of-beer take-one-down-pass-it-around 44 bottles-of-beer on-the-wall 44 bottles-of-beer on-the-wall 44 bottles-of-beer take-one-down-pass-it-around 43 bottles-of-beer on-the-wall 43 bottles-of-beer on-the-wall 43 bottles-of-beer take-one-down-pass-it-around 42 bottles-of-beer on-the-wall 42 bottles-of-beer on-the-wall 42 bottles-of-beer take-one-down-pass-it-around 41 bottles-of-beer on-the-wall 41 bottles-of-beer on-the-wall 41 bottles-of-beer take-one-down-pass-it-around 40 bottles-of-beer on-the-wall 40 bottles-of-beer on-the-wall 40 bottles-of-beer take-one-down-pass-it-around 39 bottles-of-beer on-the-wall 39 bottles-of-beer on-the-wall 39 bottles-of-beer take-one-down-pass-it-around 38 bottles-of-beer on-the-wall 38 bottles-of-beer on-the-wall 38 bottles-of-beer take-one-down-pass-it-around 37 bottles-of-beer on-the-wall 37 bottles-of-beer on-the-wall 37 bottles-of-beer take-one-down-pass-it-around 36 bottles-of-beer on-the-wall 36 bottles-of-beer on-the-wall 36 bottles-of-beer take-one-down-pass-it-around 35 bottles-of-beer on-the-wall 35 bottles-of-beer on-the-wall 35 bottles-of-beer take-one-down-pass-it-around 34 bottles-of-beer on-the-wall 34 bottles-of-beer on-the-wall 34 bottles-of-beer take-one-down-pass-it-around 33 bottles-of-beer on-the-wall 33 bottles-of-beer on-the-wall 33 bottles-of-beer take-one-down-pass-it-around 32 bottles-of-beer on-the-wall 32 bottles-of-beer on-the-wall 32 bottles-of-beer take-one-down-pass-it-around 31 bottles-of-beer on-the-wall 31 bottles-of-beer on-the-wall 31 bottles-of-beer take-one-down-pass-it-around 30 bottles-of-beer on-the-wall 30 bottles-of-beer on-the-wall 30 bottles-of-beer take-one-down-pass-it-around 29 bottles-of-beer on-the-wall 29 bottles-of-beer on-the-wall 29 bottles-of-beer take-one-down-pass-it-around 28 bottles-of-beer on-the-wall 28 bottles-of-beer on-the-wall 28 bottles-of-beer take-one-down-pass-it-around 27 bottles-of-beer on-the-wall 27 bottles-of-beer on-the-wall 27 bottles-of-beer take-one-down-pass-it-around 26 bottles-of-beer on-the-wall 26 bottles-of-beer on-the-wall 26 bottles-of-beer take-one-down-pass-it-around 25 bottles-of-beer on-the-wall 25 bottles-of-beer on-the-wall 25 bottles-of-beer take-one-down-pass-it-around 24 bottles-of-beer on-the-wall 24 bottles-of-beer on-the-wall 24 bottles-of-beer take-one-down-pass-it-around 23 bottles-of-beer on-the-wall 23 bottles-of-beer on-the-wall 23 bottles-of-beer take-one-down-pass-it-around 22 bottles-of-beer on-the-wall 22 bottles-of-beer on-the-wall 22 bottles-of-beer take-one-down-pass-it-around 21 bottles-of-beer on-the-wall 21 bottles-of-beer on-the-wall 21 bottles-of-beer take-one-down-pass-it-around 20 bottles-of-beer on-the-wall 20 bottles-of-beer on-the-wall 20 bottles-of-beer take-one-down-pass-it-around 19 bottles-of-beer on-the-wall 19 bottles-of-beer on-the-wall 19 bottles-of-beer take-one-down-pass-it-around 18 bottles-of-beer on-the-wall 18 bottles-of-beer on-the-wall 18 bottles-of-beer take-one-down-pass-it-around 17 bottles-of-beer on-the-wall 17 bottles-of-beer on-the-wall 17 bottles-of-beer take-one-down-pass-it-around 16 bottles-of-beer on-the-wall 16 bottles-of-beer on-the-wall 16 bottles-of-beer take-one-down-pass-it-around 15 bottles-of-beer on-the-wall 15 bottles-of-beer on-the-wall 15 bottles-of-beer take-one-down-pass-it-around 14 bottles-of-beer on-the-wall 14 bottles-of-beer on-the-wall 14 bottles-of-beer take-one-down-pass-it-around 13 bottles-of-beer on-the-wall 13 bottles-of-beer on-the-wall 13 bottles-of-beer take-one-down-pass-it-around 12 bottles-of-beer on-the-wall 12 bottles-of-beer on-the-wall 12 bottles-of-beer take-one-down-pass-it-around 11 bottles-of-beer on-the-wall 11 bottles-of-beer on-the-wall 11 bottles-of-beer take-one-down-pass-it-around 10 bottles-of-beer on-the-wall 10 bottles-of-beer on-the-wall 10 bottles-of-beer take-one-down-pass-it-around 9 bottles-of-beer on-the-wall 9 bottles-of-beer on-the-wall 9 bottles-of-beer take-one-down-pass-it-around 8 bottles-of-beer on-the-wall 8 bottles-of-beer on-the-wall 8 bottles-of-beer take-one-down-pass-it-around 7 bottles-of-beer on-the-wall 7 bottles-of-beer on-the-wall 7 bottles-of-beer take-one-down-pass-it-around 6 bottles-of-beer on-the-wall 6 bottles-of-beer on-the-wall 6 bottles-of-beer take-one-down-pass-it-around 5 bottles-of-beer on-the-wall 5 bottles-of-beer on-the-wall 5 bottles-of-beer take-one-down-pass-it-around 4 bottles-of-beer on-the-wall 4 bottles-of-beer on-the-wall 4 bottles-of-beer take-one-down-pass-it-around 3 bottles-of-beer on-the-wall 3 bottles-of-beer on-the-wall 3 bottles-of-beer take-one-down-pass-it-around 2 bottles-of-beer on-the-wall 2 bottles-of-beer on-the-wall 2 bottles-of-beer take-one-down-pass-it-around 1 bottles-of-beer on-the-wall 1 bottles-of-beer on-the-wall 1 bottles-of-beer take-one-down-pass-it-around 0 bottles-of-beer on-the-wall