A semantic search engine for source code https://bitshift.benkurtovic.com/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

91 lines
2.2 KiB

  1. package org.bitshift.parsing.parsers;
  2. import java.util.Map;
  3. import org.eclipse.jdt.core.JavaCore;
  4. import org.eclipse.jdt.core.dom.AST;
  5. import org.eclipse.jdt.core.dom.ASTParser;
  6. import org.eclipse.jdt.core.dom.ASTVisitor;
  7. import org.eclipse.jdt.core.dom.CompilationUnit;
  8. import org.eclipse.jdt.core.dom.Assignment;
  9. import org.eclipse.jdt.core.dom.ClassInstanceCreation;
  10. import org.eclipse.jdt.core.dom.FieldAccess
  11. import org.eclipse.jdt.core.dom.FieldDeclaration;
  12. import org.eclipse.jdt.core.dom.MethodDeclaration;
  13. import org.eclipse.jdt.core.dom.MethodInvocation;
  14. import org.eclipse.jdt.core.dom.PackageDeclaration;
  15. import org.eclipse.jdt.core.dom.TypeDeclaration;
  16. import org.eclipse.jdt.core.dom.VariableDeclarationStatement
  17. import org.bitshift.parsing.parsers.Parser;
  18. import org.bitshift.parsing.symbols.Symbols;
  19. import org.bitshift.parsing.symbols.JavaSymbols;
  20. public class JavaParser extends Parser {
  21. @Override
  22. public Symbols genSymbols() {
  23. char[] source = this.source.toCharArray();
  24. ASTParser parser = ASTParser.newParser(AST.JLS3);
  25. parser.setSource(source);
  26. Map options = JavaCore.getOptions();
  27. parser.setCompilerOptions(options);
  28. //Work on parsing partial java code later
  29. CompilationUnit result = (CompilationUnit) parser.createAST(null);
  30. ASTVisitor visitor = new NodeVisitor();
  31. result.accept(visitor);
  32. return visitor.symbols;
  33. }
  34. class NodeVisitor extends ASTVisitor {
  35. protected Symbols symbols;
  36. public NodeVisitor() {
  37. symbols = new JavaSymbols();
  38. }
  39. public boolean visit(Assignment node) {
  40. }
  41. public boolean visit(ClassInstanceCreation node) {
  42. }
  43. public boolean visit(FieldAccess node) {
  44. }
  45. public boolean visit(FieldDeclaration node) {
  46. }
  47. public boolean visit(MethodDeclaration node) {
  48. }
  49. public boolean visit(MethodInvocation node) {
  50. }
  51. public boolean visit(PackageDeclaration node) {
  52. }
  53. public boolean visit(TypeDeclaration node) {
  54. }
  55. public boolean visit(VariableDeclarationStatement node) {
  56. }
  57. }
  58. }