changeset 7571:c31395f511ec

<fizzie> ` gcc -x c 18qQz2t6.1 -o bin/moonlang && rm moonlang.c
author HackBot
date Wed, 27 Apr 2016 23:30:01 +0000
parents a8ac7fa89c91
children a551629919da
files bin/moonlang moonlang.c
diffstat 2 files changed, 0 insertions(+), 127 deletions(-) [+]
line wrap: on
line diff
Binary file bin/moonlang has changed
--- a/moonlang.c	Wed Apr 27 23:29:06 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <unistd.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;
-    char i4;
-
-    for (i = 0; input[i] != 0; i++) {
-        current_char = input[i];
-        if (current_char == 'p') {
-            ++ptr;
-        } else if (current_char == 'P') {
-            --ptr;
-        } else if (current_char == '+') {
-            ++*ptr;
-        } else if (current_char == '-') {
-            --*ptr;
-        } else if (current_char == 'o' ) {
-                putchar(*ptr);
-        } else if (current_char == 'i') {
-
-            *ptr = getchar();
-
-        } else if (current_char == '[') {
-            continue;
-        } else if (current_char == ']' && *ptr) {
-            loop = 1;
-            while (loop > 0) {
-                current_char = input[--i];
-                if (current_char == '[') {
-                    loop--;
-                } else if (current_char == ']') {
-                    loop++;
-                }
-            }
-        } else if (current_char == '/') { //push the value under the pointer to the register specified by the next value under the pointer
-            ++ptr;
-            if (*ptr > 2) {
-                --ptr;
-            } else {
-                char temp1 = *ptr;
-                --ptr;
-                registrar[temp1] = *ptr;
-            }
-        } else if (current_char == '\\') { //Same as /, except popped, also, i used an excapecode here to get past \
-            ++ptr;
-            if (*ptr > 2) {
-                --ptr;
-            } else {
-                char temp1 = *ptr;
-                --ptr;
-                *ptr = registrar[temp1];
-            }
-        } else if (current_char == 'a') { //Add R1 to R2 and put the sum in R3
-            registrar[2] = registrar[0] + registrar[1];
-        } else if (current_char == 's') { //Subtract R1 from R2 and put the diffrence in R3
-            registrar[2] = registrar[0] - registrar[1];
-        } else if (current_char == 'd') { // Divide R1 by R2 and put the quotient in R3
-            if (registrar[1] == 0) {
-                printf("Division by zero occured, Ending!");
-                break;
-            }
-            registrar[2] = registrar[0] / registrar[1];
-        } else if (current_char == 'm') { // Multiply R1 by R2 and put the result in R3
-            registrar[2] = registrar[0] * registrar[1];
-        } else if (current_char == '*') { // Terminate
-            break;
-        } else if (current_char == 'j') { // Jump forward n spaces
-
-            for (i2 = *ptr; i2 != 0; i2--) {
-                i++;
-                current_char = input[i];
-            }
-        } else if (current_char == 'J') { // Jump backword n spaces
-            for (i2 = *ptr; i2 != 0; i2--) {
-                i--;
-                current_char = input[i];
-            }
-        } else if (current_char == 'r') { //prints out the data in the source until it hits a ;
-            i++;
-
-            i3 = i;
-            for (input[i3];input[i3] != ';';i3++){
-                putchar(input[i3]);
-                i++;
-
-            }
-
-        } else if (current_char == 'R') {
-            i++;
-
-            putchar(input[i]);
-        }
-        // More commands to come, the CIOL specs are not done
-    }
-}
-
-
-int main(int argc, char *argv[]) {
-    FILE *fp;
-    char input[100];
-    printf("The program requires a file in this location: C:/, The file should be named CIOL.txt and should contain the code of your CIOL program, does this file exist? hit enter to continue");
-    scanf("%s",input);
-
-    fp = fopen("/CIOL.txt","r+");
-    char input2[10000];
-    fgets(input2, 10000, (FILE*)fp);
-    interpret(input2);  // outputs input
-    fclose(fp);
-    return 0;
-}
\ No newline at end of file