title: What does the accept() method of ASTNode do and how does it use the ASTVisitor?
body: <p>What does the <code>accept</code> method of ASTNode do (The javadoc didn't help too much...) and when will the <code>visit(Expression node)</code> method be called?
  Here is an example code of how I need to use it:</p>
  
  <pre><code>final List&lt;Expression&gt; listi = new ArrayList&lt;Expression&gt;();
  String stringi = opi.generate(entryContract, true_false_maybe);
  // stringi representes an expression, for example "g!=h".
  parser.setSource(stringi.toCharArray());
  unit = (CompilationUnit) parser.createAST(null); 
  ASTNode astRoot = unit.getRoot();
  astRoot.accept(new ASTVisitor() {
   public boolean visit(Expression node) {
    listi.add(node);
    return true;
   }
  });
  </code></pre>
  
  <p>Thank you</p>