<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>src/ikc/main/Ioke.Lang/Parser/IokeParser.cs</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -25,7 +25,7 @@
     &lt;mkdir dir=&quot;${classes.dir}&quot;/&gt;
   &lt;/target&gt;
 
-  &lt;target name=&quot;generate_filters&quot; depends=&quot;prepare&quot; description=&quot;Generates source files from the ANTLR definitions&quot;&gt;
+  &lt;target name=&quot;generate_filters&quot; depends=&quot;prepare&quot; description=&quot;Generates source files&quot;&gt;
     &lt;exec executable=&quot;ruby&quot; input=&quot;generate_filter_data.rb&quot; failonerror=&quot;false&quot; failifexecutionfails=&quot;false&quot;/&gt;
   &lt;/target&gt;
 
@@ -86,7 +86,6 @@
         &lt;include name=&quot;**/*.ik&quot;/&gt;
         &lt;include name=&quot;**/*.properties&quot;/&gt;
       &lt;/fileset&gt;
-      &lt;zipfileset src=&quot;${lib.release.dir}/antlr-3.1.2.jar&quot; includes=&quot;**/*&quot;/&gt;
       &lt;zipfileset src=&quot;${lib.release.dir}/jline-0.9.93.jar&quot; includes=&quot;**/*&quot;/&gt;
       &lt;zipfileset src=&quot;${lib.release.dir}/joda-time-1.6.jar&quot; includes=&quot;**/*&quot;/&gt;
       &lt;zipfileset src=&quot;${lib.release.dir}/asm-3.1.jar&quot; includes=&quot;**/*&quot;/&gt;
@@ -115,7 +114,6 @@
         &lt;include name=&quot;**/*.ik&quot;/&gt;
         &lt;include name=&quot;**/*.properties&quot;/&gt;
       &lt;/fileset&gt;
-      &lt;zipfileset src=&quot;${lib.release.dir}/antlr-3.1.2.jar&quot; includes=&quot;**/*&quot;/&gt;
       &lt;zipfileset src=&quot;${lib.release.dir}/jline-0.9.93.jar&quot; includes=&quot;**/*&quot;/&gt;
       &lt;zipfileset src=&quot;${lib.release.dir}/joda-time-1.6.jar&quot; includes=&quot;**/*&quot;/&gt;
       &lt;zipfileset src=&quot;${lib.release.dir}/asm-3.1.jar&quot; includes=&quot;**/*&quot;/&gt;</diff>
      <filename>build.xml</filename>
    </modified>
    <modified>
      <diff>@@ -1,9 +1,5 @@
 src.raw.dir=src
 src.dir=src/ikj/main
-src.generated.dir=src/ikj/generated/ioke/lang/parser
-src.generated.dir.relative=../generated/ioke/lang/parser
-antlr.grammar.dir=src/ikj/grammar
-antlr.grammar.file=ioke.g
 lib.dir=lib
 lib.build.dir=${lib.dir}/build
 lib.release.dir=${lib.dir}/release</diff>
      <filename>default.build.properties</filename>
    </modified>
    <modified>
      <diff>@@ -7,10 +7,6 @@
 
   &lt;property name=&quot;src.raw.dir&quot; value=&quot;src&quot;/&gt;
   &lt;property name=&quot;src.dir&quot; value=&quot;src/ikc/main&quot;/&gt;
-  &lt;property name=&quot;src.generated.dir&quot; value=&quot;src/ikc/generated/Ioke.Lang.Parser&quot;/&gt;
-  &lt;property name=&quot;src.generated.dir.relative&quot; value=&quot;../generated/Ioke.Lang.Parser&quot;/&gt;
-  &lt;property name=&quot;antlr.grammar.dir&quot; value=&quot;src/ikc/grammar&quot;/&gt;
-  &lt;property name=&quot;antlr.grammar.file&quot; value=&quot;ioke.g&quot;/&gt;
   &lt;property name=&quot;lib.dir&quot; value=&quot;lib&quot;/&gt;
   &lt;property name=&quot;lib.build.dir&quot; value=&quot;${lib.dir}/build&quot;/&gt;
   &lt;property name=&quot;bin.dir&quot; value=&quot;bin&quot;/&gt;
@@ -19,34 +15,12 @@
   &lt;property name=&quot;build.filtered.dir&quot; value=&quot;${build.dir}/filtered&quot;/&gt;
 
   &lt;target name=&quot;prepare&quot; description=&quot;Creates the directories needed for building&quot;&gt;
-    &lt;mkdir dir=&quot;${src.generated.dir}&quot;/&gt;
     &lt;mkdir dir=&quot;${build.dir}&quot;/&gt;
     &lt;mkdir dir=&quot;${build.filtered.dir}&quot;/&gt;
     &lt;mkdir dir=&quot;${release.dir}&quot;/&gt;
-
-    &lt;uptodate property=&quot;grammar.notUpdated&quot;&gt;
-      &lt;sourcefiles&gt;
-        &lt;include name=&quot;${antlr.grammar.dir}/${antlr.grammar.file}&quot; /&gt;
-      &lt;/sourcefiles&gt;
-      &lt;targetfiles&gt;
-        &lt;include name=&quot;${src.generated.dir}/iokeLexer.cs&quot; /&gt;
-      &lt;/targetfiles&gt;      
-    &lt;/uptodate&gt;
-  &lt;/target&gt;
-
-  &lt;target name=&quot;generate.antlr&quot; depends=&quot;prepare&quot; description=&quot;Generates source files from the ANTLR definitions&quot; unless=&quot;${grammar.notUpdated}&quot;&gt;
-    &lt;exec program=&quot;java&quot; workingdir=&quot;${antlr.grammar.dir}&quot;&gt;
-      &lt;arg value=&quot;-Xmx256m&quot;/&gt;
-      &lt;arg value=&quot;-cp&quot;/&gt;
-      &lt;arg file=&quot;lib/build/antlr-3.1.2.jar&quot;/&gt;
-      &lt;arg value=&quot;org.antlr.Tool&quot;/&gt;
-      &lt;arg value=&quot;-Xconversiontimeout&quot;/&gt;
-      &lt;arg value=&quot;100000&quot;/&gt;
-      &lt;arg line=&quot;-o ${src.generated.dir.relative} ${antlr.grammar.file}&quot;/&gt;
-    &lt;/exec&gt;
   &lt;/target&gt;
 
-  &lt;target name=&quot;generate_filters&quot; depends=&quot;generate.antlr&quot; description=&quot;Generates source files from the ANTLR definitions&quot;&gt;
+  &lt;target name=&quot;generate_filters&quot; depends=&quot;prepare&quot; description=&quot;Generates source files&quot;&gt;
     &lt;exec program=&quot;ruby&quot; failonerror=&quot;false&quot;&gt;
       &lt;arg value=&quot;generate_filter_data.rb&quot;/&gt;
     &lt;/exec&gt;
@@ -94,7 +68,6 @@ ioke.build.commit=${version::extract-commit()}
       &lt;sources&gt;
         &lt;include name=&quot;${src.dir}/getline.cs&quot; /&gt;
         &lt;include name=&quot;${src.dir}/Ioke.Lang/**/*.cs&quot; /&gt;
-        &lt;include name=&quot;${src.generated.dir}/**/*.cs&quot; /&gt;
         &lt;exclude name=&quot;${src.dir}/Ioke.Lang/Main.cs&quot;/&gt;
         &lt;exclude name=&quot;${src.dir}/Ioke.Lang/ISpecMain.cs&quot;/&gt; 
         &lt;exclude name=&quot;${src.dir}/Ioke.Lang/DokgenMain.cs&quot;/&gt;
@@ -221,7 +194,6 @@ ioke.build.commit=${version::extract-commit()}
     &lt;delete file=&quot;${bin.dir}/Ioke.Lang.Parser.Functional.dll.mdb&quot;/&gt;
     &lt;delete file=&quot;${bin.dir}/Ioke.Math.dll&quot;/&gt;
     &lt;delete file=&quot;${bin.dir}/Ioke.Math.dll.mdb&quot;/&gt;
-    &lt;delete dir=&quot;${src.generated.dir}&quot;/&gt;
   &lt;/target&gt;
 &lt;/project&gt;
         </diff>
      <filename>ioke-ikc.build</filename>
    </modified>
    <modified>
      <diff>@@ -5,8 +5,6 @@ namespace Ioke.Lang {
     using System.Collections.Generic;
     using System.IO;
     using System.Text;
-    using Antlr.Runtime;
-    using Antlr.Runtime.Tree;
     using Ioke.Lang.Parser;
     using Ioke.Lang.Util;
 
@@ -50,6 +48,10 @@ namespace Ioke.Lang {
             this.arguments = value;
         }
 
+        public static void SetArguments(object o, IList value) {
+            ((Message)IokeObject.dataOf(o)).arguments = value;
+        }
+
         public static bool IsTerminator(object message) {
             return ((Message)IokeObject.dataOf(message)).type == Type.TERMINATOR;
         }
@@ -287,324 +289,27 @@ namespace Ioke.Lang {
 
         public static IokeObject NewFromStream(Runtime runtime, TextReader reader, IokeObject message, IokeObject context) {
             try {
-                iokeParser parser = new iokeParser(new CommonTokenStream(new iokeLexer(new ANTLRReaderStream(reader))));
-//                  Console.Error.WriteLine(&quot;parseFully ...&quot;);
-                ITree t = parser.parseFully();
-//                  Console.Error.WriteLine(&quot;t: &quot; + t.ToStringTree());
+                IokeParser parser = new IokeParser(runtime, reader, context, message);
+                IokeObject m = parser.ParseFully();
 
-                if(t == null) {
+                if(m == null) {
                     Message mx = new Message(runtime, &quot;.&quot;, null, Type.TERMINATOR);
                     mx.Line = 0;
                     mx.Position = 0;
                     return runtime.CreateMessage(mx);
                 }
 
-                IokeObject m = FromTree(runtime, t);
-//                  Console.Error.WriteLine(&quot;m: &quot; + m);
-
-//                 Console.Error.WriteLine(&quot;m1: &quot; + m);
                 OpShuffle(m);
-//                 Console.Error.WriteLine(&quot;m2: &quot; + m);
-
                 return m;
+            } catch(ControlFlow cf) {
+                // Pass through!
+                throw cf;
             } catch(Exception e) {
                 runtime.ReportNativeException(e, message, context);
                 return null;
             }
         }
 
-
-        public static IokeObject FromTree(Runtime runtime, ITree tree) {
-//             Console.Error.WriteLine(&quot; fromTree(&quot; + tree.ToStringTree() + &quot;)&quot;);
-            Message m = null;
-            int argStart = 0;
-
-            if(!tree.IsNil) {
-                switch(tree.Type) {
-                case iokeParser.RegexpLiteral: {
-                    string s = tree.Text;
-                    char first = s[0];
-                    char second = s[1];
-                    char last = s[s.Length-1];
-                    if(first == '#' &amp;&amp; last != '{') {
-                        if(second == 'r') {
-                            int lastIndex = s.LastIndexOf(']');
-                            m = new Message(runtime, &quot;internal:createRegexp&quot;, s.Substring(3, lastIndex-3));
-                            m.arguments.Add(s.Substring(lastIndex+1));
-                        } else {
-                            int lastIndex = s.LastIndexOf('/');
-                            m = new Message(runtime, &quot;internal:createRegexp&quot;, s.Substring(2, lastIndex-2));
-                            m.arguments.Add(s.Substring(lastIndex+1));
-                        }
-                        m.Line = tree.Line;
-                        m.Position = tree.CharPositionInLine;
-                        return runtime.CreateMessage(m);
-                    } else if(first == '}' &amp;&amp; last == '{') {
-                        m = new Message(runtime, &quot;internal:createText&quot;, s.Substring(1, s.Length-3), Type.MIDDLE_RE_INTERPOLATION);
-                        m.Line = tree.Line;
-                        m.Position = tree.CharPositionInLine;
-                        return runtime.CreateMessage(m);
-                    } else if(first == '}') {
-                        int lastIndex = s.LastIndexOf('/');
-                        if(lastIndex == -1) {
-                            lastIndex = s.LastIndexOf(']');
-                        }
-                        m = new Message(runtime, &quot;internal:createText&quot;, s.Substring(1, lastIndex-1), Type.END_RE_INTERPOLATION);
-                        m.arguments.Add(s.Substring(lastIndex+1));
-                        m.Line = tree.Line;
-                        m.Position = tree.CharPositionInLine;
-                        return runtime.CreateMessage(m);
-                    } else {
-                        m = new Message(runtime, &quot;internal:createText&quot;, s.Substring(2, s.Length-4), Type.START_RE_INTERPOLATION);
-                        m.Line = tree.Line;
-                        m.Position = tree.CharPositionInLine;
-                        return runtime.CreateMessage(m);
-                    }
-                }
-                case iokeParser.StringLiteral: {
-                    string s = tree.Text;
-                    char first = s[0];
-                    char last = s[s.Length-1];
-                    if(first == '&quot;' &amp;&amp; last == '&quot;') {
-                        m = new Message(runtime, &quot;internal:createText&quot;, s.Substring(1, s.Length-2));
-                        m.Line = tree.Line;
-                        m.Position = tree.CharPositionInLine;
-                        return runtime.CreateMessage(m);
-                    } else if(first == '#' &amp;&amp; last == ']') {
-                        m = new Message(runtime, &quot;internal:createText&quot;, s.Substring(2, s.Length-3));
-                        m.Line = tree.Line;
-                        m.Position = tree.CharPositionInLine;
-                        return runtime.CreateMessage(m);
-                    } else {
-                        if(first == '}' &amp;&amp; (last == '&quot;' || last == ']')) { // This is an ending
-                            m = new Message(runtime, &quot;internal:createText&quot;, s.Substring(1, s.Length-2), Type.END_INTERPOLATION);
-                            m.Line = tree.Line;
-                            m.Position = tree.CharPositionInLine;
-                            return runtime.CreateMessage(m);
-                        } else if(first == '&quot;') { // This is a beginning
-                            m = new Message(runtime, &quot;internal:createText&quot;, s.Substring(1, s.Length-3), Type.START_INTERPOLATION);
-                            m.Line = tree.Line;
-                            m.Position = tree.CharPositionInLine;
-                            return runtime.CreateMessage(m);
-                        } else if(first == '#') { // This is a beginning
-                            m = new Message(runtime, &quot;internal:createText&quot;, s.Substring(2, s.Length-4), Type.START_INTERPOLATION);
-                            m.Line = tree.Line;
-                            m.Position = tree.CharPositionInLine;
-                            return runtime.CreateMessage(m);
-                        } else { // This is in the middle
-                            m = new Message(runtime, &quot;internal:createText&quot;, s.Substring(1, s.Length-3), Type.MIDDLE_INTERPOLATION);
-                            m.Line = tree.Line;
-                            m.Position = tree.CharPositionInLine;
-                            return runtime.CreateMessage(m);
-                        }
-                    }
-                }
-                case iokeParser.NumberLiteral:
-                    m = new Message(runtime, &quot;internal:createNumber&quot;, tree.Text);
-                    m.Line = tree.Line;
-                    m.Position = tree.CharPositionInLine;
-                    return runtime.CreateMessage(m);
-                case iokeParser.DecimalLiteral:
-                    m = new Message(runtime, &quot;internal:createDecimal&quot;, tree.Text);
-                    m.Line = tree.Line;
-                    m.Position = tree.CharPositionInLine;
-                    return runtime.CreateMessage(m);
-                case iokeParser.UnitLiteral: {
-                    string text = tree.Text;
-                    int ending = text.Length-1;
-                    while(!Char.IsDigit(text[ending])) {
-                        ending--;
-                    }
-                    Message mex = new Message(runtime, &quot;internal:createNumber&quot;, text.Substring(0, ending+1));
-                    mex.Line = tree.Line;
-                    mex.Position = tree.CharPositionInLine;
-                    m = new Message(runtime, &quot;internal:createUnit&quot;, runtime.CreateMessage(mex));
-                    m.Line = tree.Line;
-                    m.Position = tree.CharPositionInLine;
-                    return runtime.CreateMessage(m);
-                }
-                case iokeParser.UnitDecimalLiteral: {
-                    string text = tree.Text;
-                    int ending = text.Length-1;
-                    while(!Char.IsDigit(text[ending])) {
-                        ending--;
-                    }
-                    Message mex = new Message(runtime, &quot;internal:createDecimal&quot;, text.Substring(0, ending+1));
-                    mex.Line = tree.Line;
-                    mex.Position = tree.CharPositionInLine;
-                    m = new Message(runtime, &quot;internal:createUnit&quot;, mex);
-                    m.Line = tree.Line;
-                    m.Position = tree.CharPositionInLine;
-                    return runtime.CreateMessage(m);
-                }
-                case iokeParser.Identifier:
-                    m = new Message(runtime, tree.Text);
-                    m.Line = tree.Line;
-                    m.Position = tree.CharPositionInLine;
-                    return runtime.CreateMessage(m);
-                case iokeParser.Terminator:
-                    m = new Message(runtime, &quot;.&quot;, null, Type.TERMINATOR);
-                    m.Line = tree.Line;
-                    m.Position = tree.CharPositionInLine;
-                    return runtime.CreateMessage(m);
-                case iokeParser.Comma:
-                    m = new Message(runtime, &quot;,&quot;, null, Type.SEPARATOR);
-                    m.Line = tree.Line;
-                    m.Position = tree.CharPositionInLine;
-                    return runtime.CreateMessage(m);
-                case iokeParser.MESSAGE: {
-                    string text = tree.GetChild(0).Text;
-                    m = new Message(runtime, text);
-                    int count = tree.ChildCount;
-                    argStart = 1;
-                    if(count &gt; 1) {
-                        int diff = tree.GetChild(1).CharPositionInLine - (tree.CharPositionInLine+text.Length);
-                        if(diff != 0) {
-                            m.type = Type.DETACH;
-                        }
-                        argStart = 2;
-                    }
-
-                    break;
-                }
-                default:
-                    Console.Error.WriteLine(&quot;ERROR: Can't handle &quot; + tree + &quot; : &quot; + tree.Type);
-                    return null;
-                }
-                
-                m.Line = tree.Line;
-                m.Position = tree.CharPositionInLine;
-            } 
-
-            IokeObject mx = m == null ? (IokeObject)null : runtime.CreateMessage(m);
-
-            object head = null;
-            IList&lt;IokeObject&gt; currents = new SaneList&lt;IokeObject&gt;();
-
-            IList&lt;IList&lt;IokeObject&gt;&gt; oldCurrents = new SaneList&lt;IList&lt;IokeObject&gt;&gt;();
-            IList&lt;object&gt; oldHeads = new SaneList&lt;object&gt;();
-            IList&lt;IokeObject&gt; oldMx = new SaneList&lt;IokeObject&gt;();
-
-            for(int i=argStart,j=tree.ChildCount; i&lt;j; i++) {
-                IokeObject created = FromTree(runtime, tree.GetChild(i));
-
-                switch(Message.typeOf(created)) {
-                case Type.START_INTERPOLATION:{
-                    Message mvv = new Message(runtime, &quot;internal:concatenateText&quot;);
-                    mvv.Line = tree.Line;
-                    mvv.Position = tree.CharPositionInLine;
-                    oldCurrents.Insert(0, currents);
-                    oldHeads.Insert(0, head);
-                    oldMx.Insert(0, mx);
-
-                    currents = new SaneList&lt;IokeObject&gt;();
-                    head = created;
-                    mx = runtime.CreateMessage(mvv);
-
-                    created = runtime.CreateMessage(new Message(runtime, &quot;,&quot;, null, Type.SEPARATOR));
-                    break;
-                }
-                case Type.START_RE_INTERPOLATION:{
-                    Message mvv = new Message(runtime, &quot;internal:compositeRegexp&quot;);
-                    mvv.Line = tree.Line;
-                    mvv.Position = tree.CharPositionInLine;
-                    oldCurrents.Insert(0, currents);
-                    oldHeads.Insert(0, head);
-                    oldMx.Insert(0, mx);
-
-                    currents = new SaneList&lt;IokeObject&gt;();
-                    head = created.Arguments[0];
-                    mx = runtime.CreateMessage(mvv);
-
-                    created = runtime.CreateMessage(new Message(runtime, &quot;,&quot;, null, Type.SEPARATOR));
-                    break;
-                }
-                case Type.MIDDLE_INTERPOLATION:
-                    mx.Arguments.Add(head);
-
-                    currents.Clear();
-                    head = created;
-
-                    created = runtime.CreateMessage(new Message(runtime, &quot;,&quot;, null, Type.SEPARATOR));
-                    break;
-                case Type.MIDDLE_RE_INTERPOLATION:
-                    mx.Arguments.Add(head);
-
-                    currents.Clear();
-                    head = created.Arguments[0];
-
-                    created = runtime.CreateMessage(new Message(runtime, &quot;,&quot;, null, Type.SEPARATOR));
-                    break;
-                case Type.END_INTERPOLATION:
-                    mx.Arguments.Add(head);
-                    mx.Arguments.Add(created);
-
-                    currents = oldCurrents[0];
-                    oldCurrents.RemoveAt(0);
-
-                    head = oldHeads[0];
-                    oldHeads.RemoveAt(0);
-
-                    created = mx;
-
-                    mx = oldMx[0];
-                    oldMx.RemoveAt(0);
-
-                    break;
-                case Type.END_RE_INTERPOLATION:
-                    mx.Arguments.Add(head);
-                    mx.Arguments.Add(created.Arguments[0]);
-                    mx.Arguments.Add(created.Arguments[1]);
-
-                    currents = oldCurrents[0];
-                    oldCurrents.RemoveAt(0);
-
-                    head = oldHeads[0];
-                    oldHeads.RemoveAt(0);
-
-                    created = mx;
-
-                    mx = oldMx[0];
-                    oldMx.RemoveAt(0);
-                    break;
-                }
-
-                if(Message.typeOf(created) == Type.TERMINATOR &amp;&amp; head == null &amp;&amp; currents.Count == 0) {
-                    continue;
-                }
-
-                if(Message.typeOf(created) == Type.SEPARATOR &amp;&amp; mx != null) {
-                    mx.Arguments.Add(head);
-                    currents.Clear();
-                    head = null;
-                } else {
-                    if(Message.typeOf(created) == Type.TERMINATOR &amp;&amp; currents.Count &gt; 1) {
-                        while(currents.Count &gt; 1) {
-                            currents.RemoveAt(0);
-                        }
-                    }
-                    Message.SetPrev(created, currents.Count &gt; 0 ? currents[0] : null);
-                    
-                    if(head == null &amp;&amp; Message.typeOf(created) != Type.TERMINATOR) {
-                        head = created;
-                    }
-
-                    if(currents.Count &gt; 0) {
-                        Message.SetNextOfLast(currents[0], created);
-                        currents[0] = created;
-                    } else {
-                        currents.Insert(0, created);
-                    }
-                }
-            }
-
-            if(mx != null &amp;&amp; head != null) {
-                mx.Arguments.Add(head);
-            }
-
-            return mx == null ? (IokeObject)head : mx;
-        }
-
         public static string Code(IokeObject message) {
             if(message == null) {
                 return &quot;&quot;;</diff>
      <filename>src/ikc/main/Ioke.Lang/Message.cs</filename>
    </modified>
    <modified>
      <diff>@@ -10,16 +10,11 @@ import java.util.List;
 import java.util.ArrayList;
 import java.util.Map;
 
-import org.antlr.runtime.tree.Tree;
-
 import ioke.lang.parser.Levels;
 import ioke.lang.parser.IokeParser;
 
 import ioke.lang.exceptions.ControlFlow;
 
-import org.antlr.runtime.ANTLRReaderStream;
-import org.antlr.runtime.CommonTokenStream;
-
 /**
  * @author &lt;a href=&quot;mailto:ola.bini@gmail.com&quot;&gt;Ola Bini&lt;/a&gt;
  */</diff>
      <filename>src/ikj/main/ioke/lang/Message.java</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>bin/Antlr3.Runtime.dll</filename>
    </removed>
    <removed>
      <filename>bin/Antlr3.Runtime.dll.mdb</filename>
    </removed>
    <removed>
      <filename>bin/Antlr3.Runtime.xml</filename>
    </removed>
    <removed>
      <filename>bin/Antlr3.Utility.XML</filename>
    </removed>
    <removed>
      <filename>bin/Antlr3.Utility.dll</filename>
    </removed>
    <removed>
      <filename>bin/Antlr3.Utility.dll.mdb</filename>
    </removed>
    <removed>
      <filename>lib/build/antlr-3.1.2.jar</filename>
    </removed>
    <removed>
      <filename>lib/release/antlr-3.1.2.jar</filename>
    </removed>
    <removed>
      <filename>src/ikc/grammar/ioke.g</filename>
    </removed>
    <removed>
      <filename>src/ikc/main/Ioke.Lang/Parser/Lexer.cs</filename>
    </removed>
    <removed>
      <filename>src/ikc/main/Ioke.Lang/Parser/Parser.cs</filename>
    </removed>
    <removed>
      <filename>src/ikj/grammar/ioke.g</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>0f5887a398c3a291837ab1575006918fc5a4f10a</id>
    </parent>
  </parents>
  <author>
    <name>Ola Bini</name>
    <email>ola.bini@gmail.com</email>
  </author>
  <url>http://github.com/olabini/ioke/commit/854ff15ee97953e61618eab39bbb4f7d81fc7eb9</url>
  <id>854ff15ee97953e61618eab39bbb4f7d81fc7eb9</id>
  <committed-date>2009-09-22T07:23:52-07:00</committed-date>
  <authored-date>2009-09-22T07:23:52-07:00</authored-date>
  <message>Remove all pieces of Antlr and add the new C# parser</message>
  <tree>00b5bee0c19d764b4e0109e4d3daf1ba2fae02f4</tree>
  <committer>
    <name>Ola Bini</name>
    <email>ola.bini@gmail.com</email>
  </committer>
</commit>
