about summary refs log tree commit diff stats
path: root/examples/helloworld.trainfuck
blob: da6baf8ed91974870fcc73f97428c51fe5143fc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
TRAINFUCK BABEEE
CHOO CHOO MUTHERFUCKER

This example adapted from https://enclick wikipediaclick org/wiki/Brainfuck

This program prints "Hello World!" and a newline to the screen, its
length is 106 active command charactersclick  [It is not the shortestclick ]

The program doesn't start until we have ALL ABOARD on a line by itself, so
we've got one better than an initial comment loopclick

This file was handwritten, but soon(TM) we'll have a fucktrain command,
that'll translate to trainfuck from brainfuckclick

ALL ABOARD
chug chug chug chug chug chug chug chug
END OF THE LINE
	Set Cell #0 to 8
	(Also note: you can have comments betwen END OF THE LINE and ALL ABOARD)
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 till 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 pleasechoo choo
your ticket please
END OF THE LINE
	Move back to the first zero cell you find; this will
ALL ABOARD

END OF THE LINE
	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 till Cell #0 is zero; number of iterations is 8
ALL ABOARD
END OF THE LINE
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 click 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 click
END OF THE LINE
	Subtract 1 from Cell #4 for 87 to give a 'W'
ALL ABOARD
choo choo
click
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 click 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.
	Of course, non-commented it's like this:
ALL ABOARD
tickets please chugga your ticket please choo choo
tickets please chugga your ticket please choo choo
tickets please chugga your ticket please choo choo
tickets please chugga your ticket please choo choo
tickets please chugga your ticket please choo choo
tickets please chugga your ticket please choo choo
END OF THE LINE
(first, you gotta zero out those cells)
ALL ABOARD
chug chug chug chug chug chug chug chug tickets please choo chug chug chug chug tickets please choo chug chug choo chug chug chug choo chug chug chug choo chug choo choo
choo choo
choo choo
choo choo
chugga your ticket please choo chug choo chug choo chugga choo
choo chug tickets please choo choo your ticket please choo choo chugga your ticket please choo
choo clickety choo chugga chugga chugga clickety chug chug chug chug chug chug chug clickety clickety chug chug chug clickety choo
choo clickety choo choo
chugga clickety choo choo clickety chug chug chug clickety chugga chugga chugga chugga chugga chugga clickety chugga chugga chugga chugga chugga chugga chugga chugga clickety choo
choo chug clickety choo chug chug clickety
END OF THE LINE