From cdfe94135fe8ab1f407bb5e09c3cea93ec300469 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Wed, 6 Jul 2022 22:19:46 -0500 Subject: Fix examples --- examples/add2.tf | 441 +++--------------------------------------------- examples/hello-world.tf | 271 +++-------------------------- examples/rot13.tf | 56 +++--- fucktrain.awk | 3 + 4 files changed, 86 insertions(+), 685 deletions(-) diff --git a/examples/add2.tf b/examples/add2.tf index 3c1529b..bdb0ddf 100644 --- a/examples/add2.tf +++ b/examples/add2.tf @@ -5,7 +5,7 @@ from https://en.wikipedia.org/wiki/Brainfuck#Adding_two_values ALL ABOARD -chug chug +chug chug END OF THE LINE Cell c0 = 2 @@ -13,15 +13,15 @@ ALL ABOARD choo END OF THE LINE - + ALL ABOARD -chug chug chug chug chug +chug chug chug chug chug END OF THE LINE Cell c1 = 5 ALL ABOARD -tickets please +tickets please END OF THE LINE Start your loops with your cell pointer on the loop counter (c1 in our case) @@ -29,9 +29,9 @@ ALL ABOARD choo choo END OF THE LINE - + ALL ABOARD -chug +chug END OF THE LINE Add 1 to c0 @@ -39,14 +39,14 @@ ALL ABOARD choo END OF THE LINE - + ALL ABOARD -chugga +chugga END OF THE LINE Subtract 1 from c1 ALL ABOARD -your ticket please +your ticket please END OF THE LINE End your loops with the cell pointer on the loop counter @@ -58,26 +58,26 @@ We use a loop to compute 48 = 6 * 8 ALL ABOARD -chug chug chug chug +chug chug chug chug END OF THE LINE - + ALL ABOARD -chug chug chug chug +chug chug chug chug END OF THE LINE c1 = 8 and this will be our loop counter again ALL ABOARD -tickets please +tickets please choo choo END OF THE LINE - + ALL ABOARD -chug chug chug +chug chug chug END OF THE LINE - + ALL ABOARD -chug chug chug +chug chug chug END OF THE LINE Add 6 to c0 @@ -85,416 +85,29 @@ ALL ABOARD choo END OF THE LINE - + ALL ABOARD -chugga +chugga END OF THE LINE Subtract 1 from c1 ALL ABOARD -your ticket please +your ticket please choo choo END OF THE LINE - + ALL ABOARD -click +click END OF THE LINE Print out c0 which has the value 55 which translates to "7"! Finally print a newline: ALL ABOARD -chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga -chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga -chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga -chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga -chugga click - This program prints "Hello World!" and a newline to the screen, its -length is 106 active command characters. [It is not the shortest.] - -This loop is an "initial comment loop", a simple way of adding a comment -to a BF program such that you don't have to worry about any command -characters. Any ".", ",", "+", "-", "<" and ">" characters are simply -ignored, the "[" and "]" characters just have to be balanced. This -loop and the commands it contains are ignored because the current cell -defaults to a value of 0; the 0 value causes this loop to be skipped. - -from https://en.wikipedia.org/wiki/Brainfuck#Hello_World! - - -ALL ABOARD -chug chug chug chug chug chug chug chug -END OF THE LINE - Set Cell #0 to 8 - -ALL ABOARD -tickets please -choo -chug chug chug chug -END OF THE LINE - Add 4 to Cell #1; this will always set Cell #1 to 4 - -ALL ABOARD -tickets please -END OF THE LINE - as the cell will be cleared by the loop - -ALL ABOARD -choo -chug chug -END OF THE LINE - Add 2 to Cell #2 - -ALL ABOARD -choo -chug chug chug -END OF THE LINE - Add 3 to Cell #3 - -ALL ABOARD -choo -chug chug chug -END OF THE LINE - Add 3 to Cell #4 - -ALL ABOARD -choo -chug -END OF THE LINE - Add 1 to Cell #5 - -ALL ABOARD -choo choo -choo choo -choo choo -choo choo -chugga -END OF THE LINE - Decrement the loop counter in Cell #1 - -ALL ABOARD -your ticket please -END OF THE LINE - Loop until Cell #1 is zero; number of iterations is 4 - -ALL ABOARD -choo -chug -END OF THE LINE - Add 1 to Cell #2 - -ALL ABOARD -choo -chug -END OF THE LINE - Add 1 to Cell #3 - -ALL ABOARD -choo -chugga -END OF THE LINE - Subtract 1 from Cell #4 - -ALL ABOARD -choo -choo -chug -END OF THE LINE - Add 1 to Cell #6 - -ALL ABOARD -tickets please choo choo -your ticket please -END OF THE LINE - Move back to the first zero cell you find; this will - be Cell #1 which was cleared by the previous loop - -ALL ABOARD -choo choo -chugga -END OF THE LINE - Decrement the loop Counter in Cell #0 - -ALL ABOARD -your ticket please -END OF THE LINE - Loop until Cell #0 is zero; number of iterations is 8 - -The result of this is: -Cell no : 0 1 2 3 4 5 6 -Contents: 0 0 72 104 88 32 8 -Pointer : ^ - - -ALL ABOARD -choo -choo -click -END OF THE LINE - Cell #2 has value 72 which is 'H' - -ALL ABOARD -choo -chugga chugga chugga click -END OF THE LINE - Subtract 3 from Cell #3 to get 101 which is 'e' - -ALL ABOARD -chug chug chug chug chug chug chug clickety click chug chug chug click - -END OF THE LINE - Likewise for 'llo' from Cell #3 - -ALL ABOARD -choo -choo -click -END OF THE LINE - Cell #5 is 32 for the space - -ALL ABOARD -choo choo -chugga clickety -END OF THE LINE - Subtract 1 from Cell #4 for 87 to give a 'W' - -ALL ABOARD -choo choo -clickety -END OF THE LINE - Cell #3 was set to 'o' from the end of 'Hello' - -ALL ABOARD -chug chug chug click chugga chugga chugga chugga chugga chugga clickety -chugga chugga chugga chugga chugga chugga chugga chugga click -END OF THE LINE - Cell #3 for 'rl' and 'd' - -ALL ABOARD -choo -choo -chug click -END OF THE LINE - Add 1 to Cell #5 gives us an exclamation point - -ALL ABOARD -choo -chug chug click -END OF THE LINE - And finally a newline from Cell #6 - ROT13 in Brainfuck -from https://en.wikipedia.org/wiki/Brainfuck#ROT13 - - - - -ALL ABOARD -chugga clack chug tickets please -END OF THE LINE - Read first character and start outer character reading loop - -ALL ABOARD -chugga tickets please -END OF THE LINE - Skip forward if character is 0 - -ALL ABOARD -choo -choo -chug chug chug chug tickets please choo -chug chug chug chug chug chug chug chug -choo choo -chugga your ticket please -END OF THE LINE - Set up divisor (32) for division loop -(MEMORY LAYOUT: dividend copy remainder divisor quotient zero zero) - -ALL ABOARD -choo choo -chug choo choo -chugga tickets please -END OF THE LINE - Set up dividend (x minus 1) and enter division loop - -ALL ABOARD -choo -chug choo -chug choo -chugga tickets please choo -choo -choo -your ticket please -END OF THE LINE - Increase copy and remainder / reduce divisor / Normal case: skip forward - -ALL ABOARD -choo choo -tickets please tickets please choo -chug choo choo -chugga your ticket please choo -choo -chug choo -your ticket please - -END OF THE LINE - Special case: move remainder back to divisor and increase quotient - -ALL ABOARD -choo choo -choo choo -choo choo -choo choo -choo choo -chugga -END OF THE LINE - Decrement dividend - -ALL ABOARD -your ticket please -END OF THE LINE - End division loop - -ALL ABOARD -your ticket please choo -choo -choo -tickets please chugga your ticket please chug -END OF THE LINE - End skip loop; zero former divisor and reuse space for a flag - -ALL ABOARD -choo -chugga chugga tickets please chugga tickets please choo choo -chugga choo -chug chug chug -tickets please chugga your ticket please your ticket please your ticket please -choo choo -tickets please -END OF THE LINE - Zero that flag unless quotient was 2 or 3; zero quotient; check flag - -ALL ABOARD -chug chug chug chug chug chug chug chug chug chug chug chug choo choo -tickets please - -END OF THE LINE - If flag then set up divisor (13) for second division loop -(MEMORY LAYOUT: zero copy dividend divisor remainder quotient zero zero) - -ALL ABOARD -choo -chugga tickets please choo -chug choo -choo -your ticket please -END OF THE LINE - Reduce divisor; Normal case: increase remainder - -ALL ABOARD -choo -tickets please chug tickets please choo choo -chug choo -chugga your ticket please choo -chug -choo -choo -your ticket please -END OF THE LINE - Special case: increase remainder / move it back to divisor / increase quotient - -ALL ABOARD -choo choo -choo choo -choo choo -choo choo -choo choo -chugga -END OF THE LINE - Decrease dividend - -ALL ABOARD -your ticket please -END OF THE LINE - End division loop - -ALL ABOARD -choo -choo -tickets please choo choo -chug choo -chugga your ticket please -END OF THE LINE - Add remainder back to divisor to get a useful 13 - -ALL ABOARD -choo -tickets please -END OF THE LINE - Skip forward if quotient was 0 - -ALL ABOARD -chugga tickets please -END OF THE LINE - Decrement quotient and skip forward if quotient was 1 - -ALL ABOARD -chugga choo choo -choo choo -tickets please chugga your ticket please choo -choo - -END OF THE LINE - Zero quotient and divisor if quotient was 2 - -ALL ABOARD -your ticket please choo choo -choo choo -tickets please choo choo -choo choo -chugga choo -choo -chugga your ticket please choo -choo - -END OF THE LINE - Zero divisor and subtract 13 from copy if quotient was 1 - -ALL ABOARD -your ticket please choo choo -choo choo -tickets please choo choo -choo choo -chug choo -choo -chugga your ticket please -END OF THE LINE - Zero divisor and add 13 to copy if quotient was 0 - -ALL ABOARD -your ticket please -END OF THE LINE - End outer skip loop (jump to here if ((character minus 1)/32) was not 2 or 3) - -ALL ABOARD -choo choo -tickets please chugga your ticket please -END OF THE LINE - Clear remainder from first division if second division was skipped - -ALL ABOARD -choo choo -click tickets please chugga your ticket please -END OF THE LINE - Output ROT13ed character from copy and clear it - -ALL ABOARD -choo choo -chugga clack chug -END OF THE LINE - Read next character - -ALL ABOARD -your ticket please +chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga +chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga +chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga +chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga chugga +chugga click END OF THE LINE - End character reading loop diff --git a/examples/hello-world.tf b/examples/hello-world.tf index 397bc43..227faf6 100644 --- a/examples/hello-world.tf +++ b/examples/hello-world.tf @@ -8,47 +8,47 @@ ignored, the "[" and "]" characters just have to be balanced. This loop and the commands it contains are ignored because the current cell defaults to a value of 0; the 0 value causes this loop to be skipped. -from https://en.wikipedia.org/wiki/Brainfuck#Hello_World! +from https://en.wikipedia.org/wiki/Brainfuck#Hello_World! ALL ABOARD -chug chug chug chug chug chug chug chug +chug chug chug chug chug chug chug chug END OF THE LINE Set Cell #0 to 8 ALL ABOARD -tickets please +tickets please choo -chug chug chug chug +chug chug chug chug END OF THE LINE Add 4 to Cell #1; this will always set Cell #1 to 4 ALL ABOARD -tickets please +tickets please END OF THE LINE as the cell will be cleared by the loop ALL ABOARD choo -chug chug +chug chug END OF THE LINE Add 2 to Cell #2 ALL ABOARD choo -chug chug chug +chug chug chug END OF THE LINE Add 3 to Cell #3 ALL ABOARD choo -chug chug chug +chug chug chug END OF THE LINE Add 3 to Cell #4 ALL ABOARD choo -chug +chug END OF THE LINE Add 1 to Cell #5 @@ -57,55 +57,55 @@ choo choo choo choo choo choo choo choo -chugga +chugga END OF THE LINE Decrement the loop counter in Cell #1 ALL ABOARD -your ticket please +your ticket please END OF THE LINE Loop until Cell #1 is zero; number of iterations is 4 ALL ABOARD choo -chug +chug END OF THE LINE Add 1 to Cell #2 ALL ABOARD choo -chug +chug END OF THE LINE Add 1 to Cell #3 ALL ABOARD choo -chugga +chugga END OF THE LINE Subtract 1 from Cell #4 ALL ABOARD choo choo -chug +chug END OF THE LINE Add 1 to Cell #6 ALL ABOARD tickets please choo choo -your ticket please +your ticket please END OF THE LINE Move back to the first zero cell you find; this will be Cell #1 which was cleared by the previous loop ALL ABOARD choo choo -chugga +chugga END OF THE LINE Decrement the loop Counter in Cell #0 ALL ABOARD -your ticket please +your ticket please END OF THE LINE Loop until Cell #0 is zero; number of iterations is 8 @@ -118,18 +118,18 @@ Pointer : ^ ALL ABOARD choo choo -click +click END OF THE LINE Cell #2 has value 72 which is 'H' ALL ABOARD choo -chugga chugga chugga click +chugga chugga chugga click END OF THE LINE Subtract 3 from Cell #3 to get 101 which is 'e' ALL ABOARD -chug chug chug chug chug chug chug clickety click chug chug chug click +chug chug chug chug chug chug chug clickety click chug chug chug click END OF THE LINE Likewise for 'llo' from Cell #3 @@ -137,252 +137,37 @@ END OF THE LINE ALL ABOARD choo choo -click +click END OF THE LINE Cell #5 is 32 for the space ALL ABOARD choo choo -chugga clickety +chugga clickety END OF THE LINE Subtract 1 from Cell #4 for 87 to give a 'W' ALL ABOARD choo choo -clickety +clickety END OF THE LINE Cell #3 was set to 'o' from the end of 'Hello' ALL ABOARD -chug chug chug click chugga chugga chugga chugga chugga chugga clickety -chugga chugga chugga chugga chugga chugga chugga chugga click +chug chug chug click chugga chugga chugga chugga chugga chugga clickety +chugga chugga chugga chugga chugga chugga chugga chugga click END OF THE LINE Cell #3 for 'rl' and 'd' ALL ABOARD choo choo -chug click +chug click END OF THE LINE Add 1 to Cell #5 gives us an exclamation point ALL ABOARD choo -chug chug click +chug chug click END OF THE LINE And finally a newline from Cell #6 - ROT13 in Brainfuck -from https://en.wikipedia.org/wiki/Brainfuck#ROT13 - - - - -ALL ABOARD -chugga clack chug tickets please -END OF THE LINE - Read first character and start outer character reading loop - -ALL ABOARD -chugga tickets please -END OF THE LINE - Skip forward if character is 0 - -ALL ABOARD -choo -choo -chug chug chug chug tickets please choo -chug chug chug chug chug chug chug chug -choo choo -chugga your ticket please -END OF THE LINE - Set up divisor (32) for division loop -(MEMORY LAYOUT: dividend copy remainder divisor quotient zero zero) - -ALL ABOARD -choo choo -chug choo choo -chugga tickets please -END OF THE LINE - Set up dividend (x minus 1) and enter division loop - -ALL ABOARD -choo -chug choo -chug choo -chugga tickets please choo -choo -choo -your ticket please -END OF THE LINE - Increase copy and remainder / reduce divisor / Normal case: skip forward - -ALL ABOARD -choo choo -tickets please tickets please choo -chug choo choo -chugga your ticket please choo -choo -chug choo -your ticket please - -END OF THE LINE - Special case: move remainder back to divisor and increase quotient - -ALL ABOARD -choo choo -choo choo -choo choo -choo choo -choo choo -chugga -END OF THE LINE - Decrement dividend - -ALL ABOARD -your ticket please -END OF THE LINE - End division loop - -ALL ABOARD -your ticket please choo -choo -choo -tickets please chugga your ticket please chug -END OF THE LINE - End skip loop; zero former divisor and reuse space for a flag - -ALL ABOARD -choo -chugga chugga tickets please chugga tickets please choo choo -chugga choo -chug chug chug -tickets please chugga your ticket please your ticket please your ticket please -choo choo -tickets please -END OF THE LINE - Zero that flag unless quotient was 2 or 3; zero quotient; check flag - -ALL ABOARD -chug chug chug chug chug chug chug chug chug chug chug chug choo choo -tickets please - -END OF THE LINE - If flag then set up divisor (13) for second division loop -(MEMORY LAYOUT: zero copy dividend divisor remainder quotient zero zero) - -ALL ABOARD -choo -chugga tickets please choo -chug choo -choo -your ticket please -END OF THE LINE - Reduce divisor; Normal case: increase remainder - -ALL ABOARD -choo -tickets please chug tickets please choo choo -chug choo -chugga your ticket please choo -chug -choo -choo -your ticket please -END OF THE LINE - Special case: increase remainder / move it back to divisor / increase quotient - -ALL ABOARD -choo choo -choo choo -choo choo -choo choo -choo choo -chugga -END OF THE LINE - Decrease dividend - -ALL ABOARD -your ticket please -END OF THE LINE - End division loop - -ALL ABOARD -choo -choo -tickets please choo choo -chug choo -chugga your ticket please -END OF THE LINE - Add remainder back to divisor to get a useful 13 - -ALL ABOARD -choo -tickets please -END OF THE LINE - Skip forward if quotient was 0 - -ALL ABOARD -chugga tickets please -END OF THE LINE - Decrement quotient and skip forward if quotient was 1 - -ALL ABOARD -chugga choo choo -choo choo -tickets please chugga your ticket please choo -choo - -END OF THE LINE - Zero quotient and divisor if quotient was 2 - -ALL ABOARD -your ticket please choo choo -choo choo -tickets please choo choo -choo choo -chugga choo -choo -chugga your ticket please choo -choo - -END OF THE LINE - Zero divisor and subtract 13 from copy if quotient was 1 - -ALL ABOARD -your ticket please choo choo -choo choo -tickets please choo choo -choo choo -chug choo -choo -chugga your ticket please -END OF THE LINE - Zero divisor and add 13 to copy if quotient was 0 - -ALL ABOARD -your ticket please -END OF THE LINE - End outer skip loop (jump to here if ((character minus 1)/32) was not 2 or 3) - -ALL ABOARD -choo choo -tickets please chugga your ticket please -END OF THE LINE - Clear remainder from first division if second division was skipped - -ALL ABOARD -choo choo -click tickets please chugga your ticket please -END OF THE LINE - Output ROT13ed character from copy and clear it - -ALL ABOARD -choo choo -chugga clack chug -END OF THE LINE - Read next character - -ALL ABOARD -your ticket please -END OF THE LINE - End character reading loop diff --git a/examples/rot13.tf b/examples/rot13.tf index f7c24df..31a6829 100644 --- a/examples/rot13.tf +++ b/examples/rot13.tf @@ -5,12 +5,12 @@ from https://en.wikipedia.org/wiki/Brainfuck#ROT13 ALL ABOARD -chugga clack chug tickets please +chugga clack chug tickets please END OF THE LINE Read first character and start outer character reading loop ALL ABOARD -chugga tickets please +chugga tickets please END OF THE LINE Skip forward if character is 0 @@ -18,9 +18,9 @@ ALL ABOARD choo choo chug chug chug chug tickets please choo -chug chug chug chug chug chug chug chug +chug chug chug chug chug chug chug chug choo choo -chugga your ticket please +chugga your ticket please END OF THE LINE Set up divisor (32) for division loop (MEMORY LAYOUT: dividend copy remainder divisor quotient zero zero) @@ -28,7 +28,7 @@ END OF THE LINE ALL ABOARD choo choo chug choo choo -chugga tickets please +chugga tickets please END OF THE LINE Set up dividend (x minus 1) and enter division loop @@ -39,7 +39,7 @@ chug choo chugga tickets please choo choo choo -your ticket please +your ticket please END OF THE LINE Increase copy and remainder / reduce divisor / Normal case: skip forward @@ -50,7 +50,7 @@ chug choo choo chugga your ticket please choo choo chug choo -your ticket please +your ticket please END OF THE LINE Special case: move remainder back to divisor and increase quotient @@ -61,12 +61,12 @@ choo choo choo choo choo choo choo choo -chugga +chugga END OF THE LINE Decrement dividend ALL ABOARD -your ticket please +your ticket please END OF THE LINE End division loop @@ -74,7 +74,7 @@ ALL ABOARD your ticket please choo choo choo -tickets please chugga your ticket please chug +tickets please chugga your ticket please chug END OF THE LINE End skip loop; zero former divisor and reuse space for a flag @@ -82,16 +82,16 @@ ALL ABOARD choo chugga chugga tickets please chugga tickets please choo choo chugga choo -chug chug chug -tickets please chugga your ticket please your ticket please your ticket please +chug chug chug +tickets please chugga your ticket please your ticket please your ticket please choo choo -tickets please +tickets please END OF THE LINE Zero that flag unless quotient was 2 or 3; zero quotient; check flag ALL ABOARD chug chug chug chug chug chug chug chug chug chug chug chug choo choo -tickets please +tickets please END OF THE LINE If flag then set up divisor (13) for second division loop @@ -102,7 +102,7 @@ choo chugga tickets please choo chug choo choo -your ticket please +your ticket please END OF THE LINE Reduce divisor; Normal case: increase remainder @@ -111,10 +111,10 @@ choo tickets please chug tickets please choo choo chug choo chugga your ticket please choo -chug +chug choo choo -your ticket please +your ticket please END OF THE LINE Special case: increase remainder / move it back to divisor / increase quotient @@ -124,12 +124,12 @@ choo choo choo choo choo choo choo choo -chugga +chugga END OF THE LINE Decrease dividend ALL ABOARD -your ticket please +your ticket please END OF THE LINE End division loop @@ -138,18 +138,18 @@ choo choo tickets please choo choo chug choo -chugga your ticket please +chugga your ticket please END OF THE LINE Add remainder back to divisor to get a useful 13 ALL ABOARD choo -tickets please +tickets please END OF THE LINE Skip forward if quotient was 0 ALL ABOARD -chugga tickets please +chugga tickets please END OF THE LINE Decrement quotient and skip forward if quotient was 1 @@ -182,34 +182,34 @@ tickets please choo choo choo choo chug choo choo -chugga your ticket please +chugga your ticket please END OF THE LINE Zero divisor and add 13 to copy if quotient was 0 ALL ABOARD -your ticket please +your ticket please END OF THE LINE End outer skip loop (jump to here if ((character minus 1)/32) was not 2 or 3) ALL ABOARD choo choo -tickets please chugga your ticket please +tickets please chugga your ticket please END OF THE LINE Clear remainder from first division if second division was skipped ALL ABOARD choo choo -click tickets please chugga your ticket please +click tickets please chugga your ticket please END OF THE LINE Output ROT13ed character from copy and clear it ALL ABOARD choo choo -chugga clack chug +chugga clack chug END OF THE LINE Read next character ALL ABOARD -your ticket please +your ticket please END OF THE LINE End character reading loop diff --git a/fucktrain.awk b/fucktrain.awk index 4ab5f5b..eda68ad 100755 --- a/fucktrain.awk +++ b/fucktrain.awk @@ -84,6 +84,9 @@ END { } } print "" + if (boarded) { + print "END OF THE LINE" + } } -- cgit 1.4.1-21-gabe81