Yes, please check in. [I was on vacation for a while, sorry for not responding sooner.]
On 2011-04-16, at 05:25, André Bargull wrote: > Some more updates to get rid of "instanceof" tests. Are you fine with these > kind of changes (bargull-20110413-mTp and this new one)? > > > Change bargull-20110416-KGZ by bargull@Bargull02 on 2011-04-16 11:04:51 > in /home/anba/src/svn/openlaszlo/trunk > for http://svn.openlaszlo.org/openlaszlo/trunk > > Summary: Use new visitor classes to replace bulk if-instanceof tests when > traversing the AST (next change) > > New Features: LPP-9876 (Generate utility visitor classes automatically) > (partial) > > Technical Reviewer: ptw > QA Reviewer: (pending) > > Overview: > instanceof tests are a sign of poor oo-design, double-dispatch should be > preferred. > > > Details: > SimpleNode: > #childrenAccept(ParserVisitor, Object) > - actually this method is auto-generated by JavaCC, but since we're using our > own modified version of SimpleNode it wasn't present until now > #jjtAccept(TypedParserVisitor), childrenAccept(TypedParserVisitor) > - accept() methods for the new visitor classes, internally calling the > ParserVisitor based accept() methods > > ToolsParser: > - extended to generated "Named Visitors", that means the visit() method will > also include the class-name from the ast type, e.g. visitIfStatement() > - this helps to port the existings sources to a visitor based approach, > because in the sc-package the visit() methods include the class-name, too > > ParseTreePrinter: > - replaced instanceof tests with standard visitor approach > > SWF9ParseTreePrinter, JavascriptGenerator, JavascriptCompressor: > - update methods > > > Tests: > compile lps.jar > > Files: > M WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptGenerator.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/SWF9ParseTreePrinter.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/JavascriptCompressor.java > M WEB-INF/lps/server/src/org/openlaszlo/sc/ParseTreePrinter.java > M WEB-INF/lps/server/sc/src/org/openlaszlo/tools/ToolsParser.jjt > M WEB-INF/lps/server/sc/src/org/openlaszlo/sc/parser/SimpleNode.java > > Changeset: > http://svn.openlaszlo.org/openlaszlo/patches/bargull-20110416-KGZ.tar >
