diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..75b806f
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.project b/.project
new file mode 100644
index 0000000..4578cbf
--- /dev/null
+++ b/.project
@@ -0,0 +1,23 @@
+
+
+ BrainfuckInterpreter
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs
new file mode 100644
index 0000000..d4313d4
--- /dev/null
+++ b/.settings/org.eclipse.jdt.apt.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.apt.aptEnabled=false
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..ac8e750
--- /dev/null
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,9 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.processAnnotations=disabled
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.5
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..c24144d
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,11 @@
+{
+ "configurations": [
+ {
+ "type": "java",
+ "name": "CodeLens (Launch) - Main",
+ "request": "launch",
+ "mainClass": "brainfuck.interpreter.Main",
+ "projectName": "BrainfuckInterpreter"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/src/main/java/brainfuck/interpreter/App.java b/src/main/java/brainfuck/interpreter/App.java
deleted file mode 100644
index 3bc2c66..0000000
--- a/src/main/java/brainfuck/interpreter/App.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package brainfuck.interpreter;
-
-/**
- * Hello world!
- *
- */
-public class App
-{
- public static void main( String[] args )
- {
- System.out.println( "Hello World!" );
- }
-}
diff --git a/src/main/java/brainfuck/interpreter/BfInterpreter.java b/src/main/java/brainfuck/interpreter/BfInterpreter.java
new file mode 100644
index 0000000..c4e8112
--- /dev/null
+++ b/src/main/java/brainfuck/interpreter/BfInterpreter.java
@@ -0,0 +1,65 @@
+package brainfuck.interpreter;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Scanner;
+
+/**
+ * Brainfuck interpreter.
+ *
+ * @author Sem van der Hoeven
+ */
+public class BfInterpreter {
+
+ private char[] code;
+ private byte[] memory;
+ private Scanner sc;
+
+ public final int MAX_SIZE = 65535;
+
+ public BfInterpreter(String code) throws Exception {
+ if (code == null) {
+ throw new Exception("The code cannot be null!");
+ }
+
+ this.sc = new Scanner(System.in);
+ this.code = code.toCharArray();
+ this.memory = new byte[MAX_SIZE];
+ }
+
+ public void interpret() {
+ int pointer = 0;
+ for (int i = 0; i < this.code.length; i++) {
+ switch (this.code[i]) {
+ case '+':
+ memory[pointer]++;
+ break;
+ case '-':
+ memory[pointer]--;
+ break;
+ case '>':
+ pointer++;
+ break;
+ case '<':
+ pointer--;
+ break;
+ case '.':
+ System.out.print(String.valueOf((char) memory[pointer]));
+ break;
+ case ',':
+ memory[pointer] = sc.next().trim().getBytes()[0];
+ break;
+ case '[': // als de memory[pointer] 0 is, spring naar de plek na de volgende ] ipv een vooruit
+
+ break;
+ case ']': // als de memory[pointer] niet 0 is, spring terug naar de plek voor de vorige [ ipv een vooruit
+
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/brainfuck/interpreter/Main.java b/src/main/java/brainfuck/interpreter/Main.java
new file mode 100644
index 0000000..ce00abd
--- /dev/null
+++ b/src/main/java/brainfuck/interpreter/Main.java
@@ -0,0 +1,21 @@
+package brainfuck.interpreter;
+
+import java.io.UnsupportedEncodingException;
+
+/**
+ * Main
+ */
+public class Main {
+
+ public static void main(String[] args) {
+ String excl = "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.>++++++++++++++++++++++++++++++++++++++++++++++++++++.";
+
+ try {
+ BfInterpreter interpreter = new BfInterpreter(excl);
+ interpreter.interpret();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+}
\ No newline at end of file