Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace func.brainfuck
- {
- public class BrainfuckBasicCommands
- {
- public static void RegisterTo(IVirtualMachine vm, Func<int> read, Action<char> write)
- {
- vm.RegisterCommand('.', b => {
- write(Convert.ToChar(vm.Memory[vm.MemoryPointer]));
- });
- vm.RegisterCommand('+', b => {
- vm.Memory[vm.MemoryPointer]= (byte)((vm.Memory[vm.MemoryPointer] +1) % 256);
- });
- vm.RegisterCommand('-', b => {
- vm.Memory[vm.MemoryPointer] = (byte)((vm.Memory[vm.MemoryPointer] +255) % 256);
- });
- vm.RegisterCommand('>', b => {
- vm.MemoryPointer = (vm.MemoryPointer + 1)%vm.Memory.Length;
- });
- vm.RegisterCommand('<', b => {
- vm.MemoryPointer = (vm.MemoryPointer - 1 + vm.Memory.Length) %vm.Memory.Length;
- });
- vm.RegisterCommand(',', b => {
- vm.Memory[vm.MemoryPointer] = Convert.ToByte(read());
- });
- var abc = "QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890";
- foreach (var symbol in abc)
- vm.RegisterCommand(symbol, b => { vm.Memory[vm.MemoryPointer] = Convert.ToByte(symbol); });
- }
- }
- }
Add Comment
Please, Sign In to add comment