Index: dom/ASForStatement.java =================================================================== --- dom/ASForStatement.java (revision 627) +++ dom/ASForStatement.java (working copy) @@ -30,6 +30,8 @@ */ public String getInitString(); + public Statement getInit(); + /** * Returns a string representation of the loop termination condition * expression. @@ -78,4 +80,4 @@ public void setUpdate(String expr); public void setUpdate(ASExpression expr); -} \ No newline at end of file +} Index: impl/ASTASForStatement.java =================================================================== --- impl/ASTASForStatement.java (revision 627) +++ impl/ASTASForStatement.java (working copy) @@ -8,6 +8,7 @@ import uk.co.badgersinfoil.metaas.dom.ASExpression; import uk.co.badgersinfoil.metaas.dom.ASForStatement; +import uk.co.badgersinfoil.metaas.dom.Statement; import uk.co.badgersinfoil.metaas.dom.StatementContainer; import uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree; @@ -24,6 +25,14 @@ this.ast = ast; } + public Statement getInit() { + if (!hasInit()) { + return null; + } + + return StatementBuilder.build(findInit()); + } + public String getInitString() { if (!hasInit()) { return null; @@ -148,4 +157,4 @@ parent.setChildWithTokens(0, child); } } -} \ No newline at end of file +} Index: impl/StatementBuilder.java =================================================================== --- impl/StatementBuilder.java (revision 627) +++ impl/StatementBuilder.java (working copy) @@ -63,6 +63,9 @@ return new ASTASContinueStatement(ast); case AS3Parser.THROW: return new ASTASThrowStatement(ast); + case AS3Parser.FOR_INIT: + LinkedListTree firstChild = ast.getFirstChild(); + return firstChild.getType() == AS3Parser.VAR ? StatementBuilder.build(firstChild) : new ASTASExpressionStatement(ast); default: throw new SyntaxException("Unsupported statement node type: "+ASTUtils.tokenName(ast)+" in "+ActionScriptFactory.str(ASTUtils.stringifyNode(ast))); }