code: public static CompilationUnit parse(Reader reader) throws ParseException, IOException {
          ASTParser astParser = new ASTParser(reader);
          astParser.jj_input_stream.setTabSize(1);
          CompilationUnit cu = null;
          try {
              cu = (CompilationUnit) astParser.CompilationUnit();
          } finally {
              reader.close();
          }
          return cu;
      }
docs: Parses Java code and store the AST into a
  {@link org.walkmod.javalang.ast.CompilationUnit} object.
  
  @param reader
  to read the source code to parse
  @return the abstract syntax tree (AST)
  @throws ParseException
  when the code contains an invalid syntax
  @throws IOException
  the code can not be read.