<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<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 -&gt; 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 -&gt; 401</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<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 -&gt; 401</td></tr>
<tr><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<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 -&gt; 401</td></tr>
<tr class="alt"><td><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/<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 -&gt; 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 -&gt; 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 -&gt; 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);
          * }&lt;/pre&gt;
          */
</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');
          * }&lt;/pre&gt;
          */
</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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; 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 -&gt; email">CVSspam</a> 0.2.12</small></center>
</body></html>