java - What does the accept() method of ASTNode do and how does it use the ASTVisitor? -


what accept method of astnode (the javadoc didn't much...) , when visit(expression node) method called? here example code of how need use it:

final list<expression> listi = new arraylist<expression>(); string stringi = opi.generate(entrycontract, true_false_maybe); // stringi representes expression, 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;  } }); 

thank you

i guess expression class subtype of astnode class, , astvisitor class present other visit methods (which surely empty), accepting argument other astnode subclasses.

it's implementation of gof visitor design pattern (also described @ wikipedia).

the accept method on astnode invoke visit method on visitor implementation, passing parameter visit method.


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -