<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -3,7 +3,7 @@
 
 LUCASH_BASE = File.expand_path(File.dirname(__FILE__))
 
-task :default =&gt; :build
+task :default =&gt; :spec
 
 # BUILD TASKS
 </diff>
      <filename>Rakefile</filename>
    </modified>
    <modified>
      <diff>@@ -2,25 +2,9 @@
 
 require File.dirname(__FILE__) + &quot;/../lib/lucash&quot;
 
-parser = Lucash.new
 puts
 puts 'type &quot;Q&quot; to quit.'
 puts
-while true
-  puts
-  print '? '
-  if str = gets
-    break if /q/i =~ str
-    begin
-      ast = parser.parse(str)
-      ast_eval = Lucash::AST.new(ast)
-      puts ast.inspect if ENV['DEBUG']
-      puts ast_eval.eval.inspect
-    rescue ParseError
-      puts $!
-    end
-  else
-    exit
-  end
-end
 
+lucash = Lucash.new
+lucash.start
\ No newline at end of file</diff>
      <filename>bin/lucash</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,34 @@
+class Lucash
+  def initialize
+    @grammar = LucashGrammar.new
+  end
+  
+  def parse(str)
+    ast = @grammar.parse(str)
+    puts ast.inspect if ENV['DEBUG']
+    
+    result = Lucash::AST.new(ast)
+    result.eval
+  end
+  
+  def start
+    loop do
+      puts
+      print '? '
+      if str = gets
+        break if /q/i =~ str
+        begin
+          puts parse(str).inspect
+        rescue ParseError
+          puts $!
+        end
+      else
+        exit
+      end
+    end
+  end
+end
+
 require 'lucash/grammar'
 require 'lucash/shell'
 require 'lucash/ast'
\ No newline at end of file</diff>
      <filename>lib/lucash/base.rb</filename>
    </modified>
    <modified>
      <diff>@@ -5,7 +5,7 @@
 #
 
 require 'racc/parser.rb'
-class Lucash &lt; Racc::Parser
+class LucashGrammar &lt; Racc::Parser
 
 module_eval(&lt;&lt;'...end grammar.y/module_eval...', 'grammar.y', 52)
 
@@ -452,6 +452,6 @@ def _reduce_none(val, _values)
   val[0]
 end
 
-end   # class Lucash
+end   # class LucashGrammar
 
 </diff>
      <filename>lib/lucash/grammar.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-class Lucash
+class LucashGrammar
 	options no_result_var
 	prechigh
 	    nonassoc UMINUS ';'</diff>
      <filename>lib/lucash/grammar.y</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>5c2234fbc5579c0cf7bd9238f8a3edee1336bb0c</id>
    </parent>
  </parents>
  <author>
    <name>Lucas Carlson</name>
    <email>lucas@rufy.com</email>
  </author>
  <url>http://github.com/cardmagic/lucash/commit/edc2ba86dd277ab113fcc892e3206ff15b5db41a</url>
  <id>edc2ba86dd277ab113fcc892e3206ff15b5db41a</id>
  <committed-date>2008-05-26T00:46:40-07:00</committed-date>
  <authored-date>2008-05-26T00:46:40-07:00</authored-date>
  <message>Clean up startup process</message>
  <tree>f835a51372f724321f62e07748586e612d215d5c</tree>
  <committer>
    <name>Lucas Carlson</name>
    <email>lucas@rufy.com</email>
  </committer>
</commit>
