diff --git a/.gitignore b/.gitignore
index 4ce656b..8b72a6d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,3 +40,6 @@ nosetests.xml
.mr.developer.cfg
.project
.pydevproject
+
+# Maven
+*/target/*
diff --git a/parsers/java/pom.xml b/parsers/java/pom.xml
new file mode 100755
index 0000000..81ed975
--- /dev/null
+++ b/parsers/java/pom.xml
@@ -0,0 +1,99 @@
+
+
+ 4.0.0
+
+ 3.0.0
+
+
+ org.bitshift.parsing
+ parsing
+ 0.1
+ Java Parser for Bitshift
+
+
+ UTF-8
+ UTF-8
+
+
+
+
+ org.eclipse.jdt
+ core
+ 3.3.0-v_771
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.1
+
+ 1.7
+ 1.7
+ UTF-8
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 2.2.1
+
+
+ attach-sources
+
+ jar
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.4
+
+
+
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 1.6
+
+ true
+
+
+ *:*
+
+ META-INF/*.SF
+ META-INF/*.DSA
+ META-INF/*.RSA
+
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+ org.bishift.parsing.Parse
+
+
+
+
+
+
+
+
+
diff --git a/parsers/java/src/main/java/org/bitshift/parsing/Parse.java b/parsers/java/src/main/java/org/bitshift/parsing/Parse.java
new file mode 100644
index 0000000..593645b
--- /dev/null
+++ b/parsers/java/src/main/java/org/bitshift/parsing/Parse.java
@@ -0,0 +1,40 @@
+import java.io.*;
+import java.net.*;
+
+public class Parse {
+
+ public static void main(String[][] args) {
+ String fromClient;
+ String toClient;
+
+ try {
+ ServerSocket server = new ServerSocket(5002);
+
+ while(true) {
+ Socket connected = server.accept();
+ System.out.println("The client is connected.");
+
+ BufferedReader clientReader = new BufferedReader(
+ new InputStreamReader(connected.getInputStream()));
+
+ PrintWriter clientWriter = new PrintWriter(
+ connected.getOutputStream(), true);
+
+ while(true) {
+ StringBuilder builder = new StringBuilder();
+
+ while((fromClient = clientReader.readLine()) != null) {
+ builder.append(fromClient);
+ }
+
+ fromClient = builder.toString();
+
+ //Handle the data from the client here
+ }
+ }
+ } catch (IOException ex) {
+
+ }
+ }
+
+}
diff --git a/parsers/java/src/org/bitshift/parsing/parsers/CParser.java b/parsers/java/src/main/java/org/bitshift/parsing/parsers/CParser.java
similarity index 66%
rename from parsers/java/src/org/bitshift/parsing/parsers/CParser.java
rename to parsers/java/src/main/java/org/bitshift/parsing/parsers/CParser.java
index 247f9ee..9cd4308 100644
--- a/parsers/java/src/org/bitshift/parsing/parsers/CParser.java
+++ b/parsers/java/src/main/java/org/bitshift/parsing/parsers/CParser.java
@@ -1,7 +1,3 @@
package org.bitshift.parsing.parsers;
import org.bitshift.parsing.parsers.Parser;
-
-public class CParser extends Parser {
-
-}
diff --git a/parsers/java/src/org/bitshift/parsing/parsers/JavaParser.java b/parsers/java/src/main/java/org/bitshift/parsing/parsers/JavaParser.java
similarity index 57%
rename from parsers/java/src/org/bitshift/parsing/parsers/JavaParser.java
rename to parsers/java/src/main/java/org/bitshift/parsing/parsers/JavaParser.java
index 39d4b47..bb7b7e4 100644
--- a/parsers/java/src/org/bitshift/parsing/parsers/JavaParser.java
+++ b/parsers/java/src/main/java/org/bitshift/parsing/parsers/JavaParser.java
@@ -1,6 +1,9 @@
package org.bitshift.parsing.parsers;
+import java.util.HashMap;
+import java.util.List;
import java.util.Map;
+import java.util.Stack;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.dom.AST;
@@ -8,23 +11,39 @@ import org.eclipse.jdt.core.dom.ASTParser;
import org.eclipse.jdt.core.dom.ASTVisitor;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jdt.core.dom.ClassInstanceCreation;
-import org.eclipse.jdt.core.dom.FieldAccess
+import org.eclipse.jdt.core.dom.FieldAccess;
import org.eclipse.jdt.core.dom.FieldDeclaration;
import org.eclipse.jdt.core.dom.MethodDeclaration;
import org.eclipse.jdt.core.dom.MethodInvocation;
+import org.eclipse.jdt.core.dom.Name;
import org.eclipse.jdt.core.dom.PackageDeclaration;
+import org.eclipse.jdt.core.dom.QualifiedName;
+import org.eclipse.jdt.core.dom.QualifiedType;
+import org.eclipse.jdt.core.dom.SimpleName;
+import org.eclipse.jdt.core.dom.SimpleType;
import org.eclipse.jdt.core.dom.Statement;
+import org.eclipse.jdt.core.dom.Type;
import org.eclipse.jdt.core.dom.TypeDeclaration;
-import org.eclipse.jdt.core.dom.VariableDeclarationStatement
+import org.eclipse.jdt.core.dom.VariableDeclarationStatement;
import org.bitshift.parsing.parsers.Parser;
import org.bitshift.parsing.symbols.Symbols;
import org.bitshift.parsing.symbols.JavaSymbols;
/*TODO: Work on parsing partial java code.
- * Make sure all names of nodes are strings.*/
+ * Change visits to endVisit and implement a cache*/
public class JavaParser extends Parser {
+ protected JavaSymbols symbols;
+ protected CompilationUnit compUnit;
+ private Stack