mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Brainfuck samples
This commit is contained in:
		
				
					committed by
					
						
						Garen Torikian
					
				
			
			
				
	
			
			
			
						parent
						
							fecf0cc137
						
					
				
				
					commit
					05f73df064
				
			
							
								
								
									
										11
									
								
								samples/Brainfuck/fib100.bf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								samples/Brainfuck/fib100.bf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					+++++++++++
 | 
				
			||||||
 | 
					>+>>>>++++++++++++++++++++++++++++++++++++++++++++
 | 
				
			||||||
 | 
					>++++++++++++++++++++++++++++++++<<<<<<[>[>>>>>>+>
 | 
				
			||||||
 | 
					+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]<[>++++++++++[-
 | 
				
			||||||
 | 
					<-[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]]>[<<[>>>+<<<
 | 
				
			||||||
 | 
					-]>>[-]]<<]>>>[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]]
 | 
				
			||||||
 | 
					>[<<+>>[-]]<<<<<<<]>>>>>[+++++++++++++++++++++++++
 | 
				
			||||||
 | 
					+++++++++++++++++++++++.[-]]++++++++++<[->-<]>++++
 | 
				
			||||||
 | 
					++++++++++++++++++++++++++++++++++++++++++++.[-]<<
 | 
				
			||||||
 | 
					<<<<<<<<<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<-[>>.>.<<<
 | 
				
			||||||
 | 
					[-]]<<[>>+>+<<<-]>>>[<<<+>>>-]<<[<+>-]>[<+>-]<<<-]
 | 
				
			||||||
							
								
								
									
										4
									
								
								samples/Brainfuck/hello.bf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								samples/Brainfuck/hello.bf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					// More complex version of hello world
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					>++++++++[<+++++++++>-]<.>>+>+>++>[-]+<[>[->+<<++++>]<<]>.+++++++..+++.>
 | 
				
			||||||
 | 
					>+++++++.<<<[[-]<[-]>]<+++++++++++++++.>>.+++.------.--------.>>+.>++++.
 | 
				
			||||||
							
								
								
									
										3
									
								
								samples/Brainfuck/helloworld.bf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								samples/Brainfuck/helloworld.bf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					// Hello World
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
 | 
				
			||||||
							
								
								
									
										30
									
								
								samples/Brainfuck/rot13.bf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								samples/Brainfuck/rot13.bf
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					# ROT13 cipher
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					-,+[                         Read first character and start outer character reading loop
 | 
				
			||||||
 | 
					    -[                       Skip forward if character is 0
 | 
				
			||||||
 | 
					        >>++++[>++++++++<-]  Set up divisor (32) for division loop
 | 
				
			||||||
 | 
					                               (MEMORY LAYOUT: dividend copy remainder divisor quotient zero zero)
 | 
				
			||||||
 | 
					        <+<-[                Set up dividend (x minus 1) and enter division loop
 | 
				
			||||||
 | 
					            >+>+>-[>>>]      Increase copy and remainder / reduce divisor / Normal case: skip forward
 | 
				
			||||||
 | 
					            <[[>+<-]>>+>]    Special case: move remainder back to divisor and increase quotient
 | 
				
			||||||
 | 
					            <<<<<-           Decrement dividend
 | 
				
			||||||
 | 
					        ]                    End division loop
 | 
				
			||||||
 | 
					    ]>>>[-]+                 End skip loop; zero former divisor and reuse space for a flag
 | 
				
			||||||
 | 
					    >--[-[<->+++[-]]]<[         Zero that flag unless quotient was 2 or 3; zero quotient; check flag
 | 
				
			||||||
 | 
					        ++++++++++++<[       If flag then set up divisor (13) for second division loop
 | 
				
			||||||
 | 
					                               (MEMORY LAYOUT: zero copy dividend divisor remainder quotient zero zero)
 | 
				
			||||||
 | 
					            >-[>+>>]         Reduce divisor; Normal case: increase remainder
 | 
				
			||||||
 | 
					            >[+[<+>-]>+>>]   Special case: increase remainder / move it back to divisor / increase quotient
 | 
				
			||||||
 | 
					            <<<<<-           Decrease dividend
 | 
				
			||||||
 | 
					        ]                    End division loop
 | 
				
			||||||
 | 
					        >>[<+>-]             Add remainder back to divisor to get a useful 13
 | 
				
			||||||
 | 
					        >[                   Skip forward if quotient was 0
 | 
				
			||||||
 | 
					            -[               Decrement quotient and skip forward if quotient was 1
 | 
				
			||||||
 | 
					                -<<[-]>>     Zero quotient and divisor if quotient was 2
 | 
				
			||||||
 | 
					            ]<<[<<->>-]>>    Zero divisor and subtract 13 from copy if quotient was 1
 | 
				
			||||||
 | 
					        ]<<[<<+>>-]          Zero divisor and add 13 to copy if quotient was 0
 | 
				
			||||||
 | 
					    ]                        End outer skip loop (jump to here if ((character minus 1)/32) was not 2 or 3)
 | 
				
			||||||
 | 
					    <[-]                     Clear remainder from first division if second division was skipped
 | 
				
			||||||
 | 
					    <.[-]                    Output ROT13ed character from copy and clear it
 | 
				
			||||||
 | 
					    <-,+                     Read next character
 | 
				
			||||||
 | 
					]                            End character reading loop
 | 
				
			||||||
		Reference in New Issue
	
	Block a user