<html>
<head>
<style><!--
body {background-color:#ffffff;}
.file {border:1px solid #eeeeee;margin-top:1em;margin-bottom:1em;}
.pathname {font-family:monospace; float:right;}
.fileheader {margin-bottom:.5em;}
.diff {margin:0;}
.tasklist {padding:4px;border:1px dashed #000000;margin-top:1em;}
.tasklist ul {margin-top:0;margin-bottom:0;}
tr.alt {background-color:#eeeeee}
#added {background-color:#ddffdd;}
#addedchars {background-color:#99ff99;font-weight:bolder;}
tr.alt #added {background-color:#ccf7cc;}
#removed {background-color:#ffdddd;}
#removedchars {background-color:#ff9999;font-weight:bolder;}
tr.alt #removed {background-color:#f7cccc;}
#copied {background-color:#ccccff;}
tr.alt #copied {background-color:#bbbbf7;}
#info {color:#888888;}
#context {background-color:#eeeeee;}
td {padding-left:.3em;padding-right:.3em;}
tr.head {border-bottom-width:1px;border-bottom-style:solid;}
tr.head td {padding:0;padding-top:.2em;}
.task {background-color:#ffff00;}
.comment {white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;white-space:pre-wrap;word-wrap:break-word;padding:4px;border:1px dashed #000000;background-color:#ffffdd}
.error {color:red;}
hr {border-width:0px;height:2px;background:black;}
--></style>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" rules="cols">
<tr class="head"><td colspan="5">Commit in <b><tt>metaas/trunk/src</tt></b></td></tr>
<tr><td><tt>main/java/uk/co/badgersinfoil/metaas/dom/<a href="#file1"><span id="added">ASWhileStatement.java</span></a></tt> </td><td></td><td align="right" id="added">+7</td><td></td><td nowrap="nowrap" align="right">added 401</td></tr>
<tr class="alt"><td><tt> /<a href="#file2">StatementContainer.java</a></tt> </td><td></td><td align="right" id="added">+3</td><td align="right" id="removed">-3</td><td nowrap="nowrap" align="center">400 -> 401</td></tr>
<tr><td><tt>main/java/uk/co/badgersinfoil/metaas/impl/<a href="#file3">ASTASForStatement.java</a></tt> </td><td></td><td align="right" id="added">+2</td><td align="right" id="removed">-1</td><td nowrap="nowrap" align="center">400 -> 401</td></tr>
<tr class="alt"><td><tt> /<a href="#file4">ASTASIfStatement.java</a></tt> </td><td></td><td align="right" id="added">+2</td><td align="right" id="removed">-1</td><td nowrap="nowrap" align="center">400 -> 401</td></tr>
<tr><td><tt> /<a href="#file5">ASTASMethod.java</a></tt> </td><td></td><td align="right" id="added">+2</td><td align="right" id="removed">-1</td><td nowrap="nowrap" align="center">400 -> 401</td></tr>
<tr class="alt"><td><tt> /<a href="#file6"><span id="added">ASTASWhileStatement.java</span></a></tt> </td><td></td><td align="right" id="added">+86</td><td></td><td nowrap="nowrap" align="right">added 401</td></tr>
<tr><td><tt> /<a href="#file7">ASTStatementList.java</a></tt> </td><td></td><td align="right" id="added">+4</td><td align="right" id="removed">-3</td><td nowrap="nowrap" align="center">400 -> 401</td></tr>
<tr class="alt"><td><tt>test/java/uk/co/badgersinfoil/metaas/<a href="#file8">StatementTests.java</a></tt> </td><td></td><td align="right" id="added">+6</td><td align="right" id="removed">-3</td><td nowrap="nowrap" align="center">400 -> 401</td></tr>
<tr><td></td><td></td><td align="right" id="added">+112</td><td align="right" id="removed">-12</td><td></td></tr>
</table>
<small id="info">2 added + 6 modified, total 8 files</small><br />
<pre class="comment">
improved handling for while-loop statements
</pre>
<hr /><a name="file1" /><div class="file">
<span class="pathname" id="added">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/dom</span><br />
<div class="fileheader" id="added"><big><b>ASWhileStatement.java</b></big> <small id="info">added at 401</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/dom/ASWhileStatement.java        2007-02-10 15:13:14 UTC (rev 400)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/dom/ASWhileStatement.java        2007-02-10 15:14:44 UTC (rev 401)
@@ -0,0 +1,7 @@
</small></pre><pre class="diff" id="added">+package uk.co.badgersinfoil.metaas.dom;
+
+public interface ASWhileStatement extends Statement, StatementContainer {
+
+        public String getConditionString();
+        public void setCondition(String string);
+}
</pre></div>
<hr /><a name="file2" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/dom</span><br />
<div class="fileheader"><big><b>StatementContainer.java</b></big> <small id="info">400 -> 401</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/dom/StatementContainer.java        2007-02-10 15:13:14 UTC (rev 400)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/dom/StatementContainer.java        2007-02-10 15:14:44 UTC (rev 401)
@@ -61,9 +61,9 @@
</small></pre><pre class="diff" id="context">          *         trace(i);
         * }</pre>
         */
</pre><pre class="diff" id="removed">-        public <span id="removedchars">StatementContainer</span> newForIn(String init, String list);
</pre><pre class="diff" id="added">+        public <span id="addedchars">ASForInStatement</span> newForIn(String init, String list);
</pre><pre class="diff" id="context">
</pre><pre class="diff" id="removed">-        public <span id="removedchars">StatementContainer</span> newForEachIn(String init, String list);
</pre><pre class="diff" id="added">+        public <span id="addedchars">ASForEachInStatement</span> newForEachIn(String init, String list);
</pre><pre class="diff" id="context">
        /**
         * Adds a while-loop to the code. e.g.
</pre><pre class="diff"><small id="info">@@ -74,7 +74,7 @@
</small></pre><pre class="diff" id="context">          *         trace('hi there');
         * }</pre>
         */
</pre><pre class="diff" id="removed">-        public <span id="removedchars">StatementContainer</span> newWhile(String condition);
</pre><pre class="diff" id="added">+        public <span id="addedchars">ASWhileStatement</span> newWhile(String condition);
</pre><pre class="diff" id="context">
        /**
         * Adds a do-while-loop to the code. e.g.
</pre></div>
<hr /><a name="file3" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/impl</span><br />
<div class="fileheader"><big><b>ASTASForStatement.java</b></big> <small id="info">400 -> 401</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASForStatement.java        2007-02-10 15:13:14 UTC (rev 400)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASForStatement.java        2007-02-10 15:14:44 UTC (rev 401)
@@ -11,6 +11,7 @@
</small></pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.dom.ASForStatement;
import uk.co.badgersinfoil.metaas.dom.ASIfStatement;
import uk.co.badgersinfoil.metaas.dom.ASSwitchStatement;
</pre><pre class="diff" id="added">+import uk.co.badgersinfoil.metaas.dom.ASWhileStatement;
</pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.dom.StatementContainer;
import uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree;
</pre><pre class="diff"><small id="info">@@ -104,7 +105,7 @@
</small></pre><pre class="diff" id="context">                 return getBlock().newForEachIn(init, list);
        }
</pre><pre class="diff" id="removed">-        public <span id="removedchars">StatementContainer</span> newWhile(String condition) {
</pre><pre class="diff" id="added">+        public <span id="addedchars">ASWhileStatement</span> newWhile(String condition) {
</pre><pre class="diff" id="context">                 return getBlock().newWhile(condition);
        }
</pre></div>
<hr /><a name="file4" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/impl</span><br />
<div class="fileheader"><big><b>ASTASIfStatement.java</b></big> <small id="info">400 -> 401</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASIfStatement.java        2007-02-10 15:13:14 UTC (rev 400)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASIfStatement.java        2007-02-10 15:14:44 UTC (rev 401)
@@ -13,6 +13,7 @@
</small></pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.dom.ASForStatement;
import uk.co.badgersinfoil.metaas.dom.ASIfStatement;
import uk.co.badgersinfoil.metaas.dom.ASSwitchStatement;
</pre><pre class="diff" id="added">+import uk.co.badgersinfoil.metaas.dom.ASWhileStatement;
</pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.dom.StatementContainer;
import uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree;
</pre><pre class="diff"><small id="info">@@ -69,7 +70,7 @@
</small></pre><pre class="diff" id="context">                 return getThen().newForEachIn(init, list);
        }
</pre><pre class="diff" id="removed">-        public <span id="removedchars">StatementContainer</span> newWhile(String condition) {
</pre><pre class="diff" id="added">+        public <span id="addedchars">ASWhileStatement</span> newWhile(String condition) {
</pre><pre class="diff" id="context">                 return getThen().newWhile(condition);
        }
</pre></div>
<hr /><a name="file5" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/impl</span><br />
<div class="fileheader"><big><b>ASTASMethod.java</b></big> <small id="info">400 -> 401</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASMethod.java        2007-02-10 15:13:14 UTC (rev 400)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASMethod.java        2007-02-10 15:14:44 UTC (rev 401)
@@ -18,6 +18,7 @@
</small></pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.dom.ASIfStatement;
import uk.co.badgersinfoil.metaas.dom.ASMethod;
import uk.co.badgersinfoil.metaas.dom.ASSwitchStatement;
</pre><pre class="diff" id="added">+import uk.co.badgersinfoil.metaas.dom.ASWhileStatement;
</pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.dom.StatementContainer;
import uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree;
</pre><pre class="diff"><small id="info">@@ -185,7 +186,7 @@
</small></pre><pre class="diff" id="context">                 return stmtList.newForEachIn(init, list);
        }
</pre><pre class="diff" id="removed">-        public <span id="removedchars">StatementContainer</span> newWhile(String condition) {
</pre><pre class="diff" id="added">+        public <span id="addedchars">ASWhileStatement</span> newWhile(String condition) {
</pre><pre class="diff" id="context">                 return stmtList.newWhile(condition);
        }
</pre></div>
<hr /><a name="file6" /><div class="file">
<span class="pathname" id="added">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/impl</span><br />
<div class="fileheader" id="added"><big><b>ASTASWhileStatement.java</b></big> <small id="info">added at 401</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASWhileStatement.java        2007-02-10 15:13:14 UTC (rev 400)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTASWhileStatement.java        2007-02-10 15:14:44 UTC (rev 401)
@@ -0,0 +1,86 @@
</small></pre><pre class="diff" id="added">+/**
+ * ASTASWhileStatement.java
+ *
+ * Copyright (c) 2006 David Holroyd
+ */
+
+package uk.co.badgersinfoil.metaas.impl;
+
+import org.asdt.core.internal.antlr.AS3Parser;
+import uk.co.badgersinfoil.metaas.dom.ASForEachInStatement;
+import uk.co.badgersinfoil.metaas.dom.ASForInStatement;
+import uk.co.badgersinfoil.metaas.dom.ASForStatement;
+import uk.co.badgersinfoil.metaas.dom.ASIfStatement;
+import uk.co.badgersinfoil.metaas.dom.ASSwitchStatement;
+import uk.co.badgersinfoil.metaas.dom.ASWhileStatement;
+import uk.co.badgersinfoil.metaas.dom.StatementContainer;
+import uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree;
+
+
+public class ASTASWhileStatement implements ASWhileStatement {
+
+        private static final int INDEX_CONDITION = 0;
+        private static final int INDEX_STATEMENT = 1;
+        private LinkedListTree ast;
+
+        public ASTASWhileStatement(LinkedListTree ast) {
+                ASTUtils.assertAS3TokenTypeIs(AS3Parser.WHILE, ast.getType());
+                this.ast = ast;
+        }
+
+        private LinkedListTree getChild(int index) {
+                return (LinkedListTree)ast.getChild(index);
+        }
+        private StatementContainer getBlock() {
+                return new ASTStatementList(getChild(INDEX_STATEMENT));
+        }
+
+        public void addStmt(String statement) {
+                getBlock().addStmt(statement);
+        }
+
+        public void addComment(String text) {
+                getBlock().addComment(text);
+        }
+
+        public ASIfStatement newIf(String condition) {
+                return getBlock().newIf(condition);
+        }
+
+        public ASForStatement newFor(String init, String condition,        String update) {
+                return getBlock().newFor(init, condition, update);
+        }
+
+        public ASForInStatement newForIn(String init, String list) {
+                return getBlock().newForIn(init, list);
+        }
+
+        public ASForEachInStatement newForEachIn(String init, String list) {
+                return getBlock().newForEachIn(init, list);
+        }
+
+        public ASWhileStatement newWhile(String condition) {
+                return getBlock().newWhile(condition);
+        }
+
+        public StatementContainer newDoWhile(String condition) {
+                return getBlock().newDoWhile(condition);
+        }
+
+        public ASSwitchStatement newSwitch(String condition) {
+                return getBlock().newSwitch(condition);
+        }
+
+        public boolean containsCode() {
+                return getBlock().containsCode();
+        }
+
+        public String getConditionString() {
+                return ASTUtils.stringifyNode(ast.getFirstChild().getFirstChild());
+        }
+
+        public void setCondition(String expr) {
+                LinkedListTree cond = AS3FragmentParser.parseCondition(expr);
+                ast.setChildWithTokens(INDEX_CONDITION, cond);
+        }
+}
</pre></div>
<hr /><a name="file7" /><div class="file">
<span class="pathname">metaas/trunk/src/main/java/uk/co/badgersinfoil/metaas/impl</span><br />
<div class="fileheader"><big><b>ASTStatementList.java</b></big> <small id="info">400 -> 401</small></div>
<pre class="diff"><small id="info">--- trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTStatementList.java        2007-02-10 15:13:14 UTC (rev 400)
+++ trunk/src/main/java/uk/co/badgersinfoil/metaas/impl/ASTStatementList.java        2007-02-10 15:14:44 UTC (rev 401)
@@ -13,6 +13,7 @@
</small></pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.dom.ASForStatement;
import uk.co.badgersinfoil.metaas.dom.ASIfStatement;
import uk.co.badgersinfoil.metaas.dom.ASSwitchStatement;
</pre><pre class="diff" id="added">+import uk.co.badgersinfoil.metaas.dom.ASWhileStatement;
</pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.dom.StatementContainer;
import uk.co.badgersinfoil.metaas.impl.antlr.LinkedListToken;
import uk.co.badgersinfoil.metaas.impl.antlr.LinkedListTree;
</pre><pre class="diff"><small id="info">@@ -81,11 +82,11 @@
</small></pre><pre class="diff" id="context">                 return new ASTASForEachInStatement(forStmt);
        }
</pre><pre class="diff" id="removed">-        public <span id="removedchars">StatementContainer</span> newWhile(String condition) {
</pre><pre class="diff" id="added">+        public <span id="addedchars">ASWhileStatement</span> newWhile(String condition) {
</pre><pre class="diff" id="context">                 LinkedListTree whileStmt = ASTBuilder.newWhile(condition);
</pre><pre class="diff" id="removed">-                LinkedListTree block = appendBlock(whileStmt);
</pre><pre class="diff" id="added">+                appendBlock(whileStmt);
</pre><pre class="diff" id="context">                 addStatement(whileStmt);
</pre><pre class="diff" id="removed">-                return new ASTStatementList(block);
</pre><pre class="diff" id="added">+                return new ASTASWhileStatement(whileStmt);
</pre><pre class="diff" id="context">         }
        public StatementContainer newDoWhile(String condition) {
</pre></div>
<hr /><a name="file8" /><div class="file">
<span class="pathname">metaas/trunk/src/test/java/uk/co/badgersinfoil/metaas</span><br />
<div class="fileheader"><big><b>StatementTests.java</b></big> <small id="info">400 -> 401</small></div>
<pre class="diff"><small id="info">--- trunk/src/test/java/uk/co/badgersinfoil/metaas/StatementTests.java        2007-02-10 15:13:14 UTC (rev 400)
+++ trunk/src/test/java/uk/co/badgersinfoil/metaas/StatementTests.java        2007-02-10 15:14:44 UTC (rev 401)
@@ -10,6 +10,7 @@
</small></pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.dom.ASIfStatement;
import uk.co.badgersinfoil.metaas.dom.ASMethod;
import uk.co.badgersinfoil.metaas.dom.ASSwitchStatement;
</pre><pre class="diff" id="added">+import uk.co.badgersinfoil.metaas.dom.ASWhileStatement;
</pre><pre class="diff" id="context"> import uk.co.badgersinfoil.metaas.dom.StatementContainer;
import uk.co.badgersinfoil.metaas.dom.Visibility;
import junit.framework.TestCase;
</pre><pre class="diff"><small id="info">@@ -104,9 +105,11 @@
</small></pre><pre class="diff" id="context">         }
        public void testWhile() {
</pre><pre class="diff" id="removed">-                StatementContainer block;
-                block = meth.newWhile("test()");
-                block.addStmt("trace(result())");
</pre><pre class="diff" id="added">+                ASWhileStatement whileStmt = meth.newWhile("test()");
+                whileStmt.addStmt("trace(result())");
+                assertEquals("test()", whileStmt.getConditionString());
+                whileStmt.setCondition("a == b");
+                assertEquals("a == b", whileStmt.getConditionString());
</pre><pre class="diff" id="context">         }
        public void testDoWhile() {
</pre></div>
<center><small><a href="http://www.badgers-in-foil.co.uk/projects/cvsspam/" title="commit -> email">CVSspam</a> 0.2.12</small></center>
</body></html>