Mercurial > repo
view Something.c @ 7757:99c5e6af1e66
<fizzie> ` echo -e \'#! bin/bash\\ncmd="$1"\\nshift\\nf="$*"\\nif [ -z "$f" ]; then f="${cmd#* }"; cmd="${cmd%% *}"; fi\\nif [ -z "$f" ]; then echo try: \\\\`f command filename; else "$cmd" "$(< "$f")"; fi\' > bin/f
author | HackBot |
---|---|
date | Wed, 04 May 2016 21:33:42 +0000 |
parents | 3ddb3ea01af1 |
children |
line wrap: on
line source
#include <stdio.h> #include <stdio.h> #include <stdlib.h> #include <string.h> // initialize the tape with 30,000 zeroes unsigned long long int tape[30000] = {0}; unsigned long long int registrar[3] = {0}; // R1, R2, and R3 // set the pointer to point at the left-most cell of the tape unsigned long long int* ptr = tape; void interpret(char* input) { char current_char; size_t i; size_t i2; size_t i3; size_t loop; int i4; time_t t; srand((unsigned) time(&t)); for (i = 0; input[i] != 0; i++) { current_char = input[i]; i4 = rand() % 7; if (i4 == 0) { ++ptr; } else if (i4 == 1) { --ptr; } else if (i4 == 2) { ++*ptr; } else if (i4 == 3) { --*ptr; } else if (i4 == 4) { putchar(*ptr); } else if (i4 == 5) { *ptr = getchar(); } else if (i4 == 6) { continue; } // More commands to come, the CIOL specs are not done } } int main( int argc, char *argv[] ) { interpret(argv[1]); // outputs input return 0; }