changeset 7900:b680a67063ff

<oerjan> ` sed -i \'s/\\r//g\' src/ciol.c
author HackBot
date Sat, 07 May 2016 00:26:42 +0000
parents 3173024d658d
children d4e4f2ce1e48
files src/ciol.c
diffstat 1 files changed, 118 insertions(+), 118 deletions(-) [+]
line wrap: on
line diff
--- a/src/ciol.c	Sat May 07 00:26:15 2016 +0000
+++ b/src/ciol.c	Sat May 07 00:26:42 2016 +0000
@@ -1,119 +1,119 @@
-#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
-            ++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[] ) {
-
-    interpret(argv[1]);  // outputs input
-    return 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
+            ++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[] ) {
+
+    interpret(argv[1]);  // outputs input
+    return 0;
 }
\ No newline at end of file