pingus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-CVS] r3478 - trunk/sexpr


From: grumbel at BerliOS
Subject: [Pingus-CVS] r3478 - trunk/sexpr
Date: Sat, 3 Nov 2007 10:52:50 +0100

Author: grumbel
Date: 2007-11-03 10:52:50 +0100 (Sat, 03 Nov 2007)
New Revision: 3478

Modified:
   trunk/sexpr/README
   trunk/sexpr/sexpr.rb
   trunk/sexpr/sexpr_test.rb
Log:
- added to_ruby()

Modified: trunk/sexpr/README
===================================================================
--- trunk/sexpr/README  2007-11-03 09:48:35 UTC (rev 3477)
+++ trunk/sexpr/README  2007-11-03 09:52:50 UTC (rev 3478)
@@ -2,11 +2,17 @@
 ==========
 
 SExpr is a library for parsing a subset of s-expressions, namely cons
-aren't handled and replaced by more convenient lists:
+aren't handled and replaced by more convenient lists. So something
+like:
 
-Right: (foo (bar baz))
-Wrong: (foo . (bar . (baz . ()))
+  (foo (bar baz))
 
+is parsed properly, but something like:
+
+  (foo . (bar . (baz . ()))
+
+isn't handled.
+
 Right: (foo bar)
 Wrong: (foo . bar)
 

Modified: trunk/sexpr/sexpr.rb
===================================================================
--- trunk/sexpr/sexpr.rb        2007-11-03 09:48:35 UTC (rev 3477)
+++ trunk/sexpr/sexpr.rb        2007-11-03 09:52:50 UTC (rev 3478)
@@ -34,6 +34,10 @@
     def write(out)
       out << to_s()
     end
+
+    def to_ruby()
+      return @value
+    end
   end
 
   # Boolean
@@ -153,6 +157,10 @@
       }
       out << ")"
     end
+
+    def to_ruby()
+      return @value.map{|el| el.to_ruby()}
+    end
   end
 end
 

Modified: trunk/sexpr/sexpr_test.rb
===================================================================
--- trunk/sexpr/sexpr_test.rb   2007-11-03 09:48:35 UTC (rev 3477)
+++ trunk/sexpr/sexpr_test.rb   2007-11-03 09:52:50 UTC (rev 3478)
@@ -4,7 +4,9 @@
 require "parser.rb"
 
 if ARGV.empty?() then
-  puts SExpr::SExpr.parse("(pi8ngulevel -.51 a (b +1.5) -5)")
+  SExpr::SExpr.parse("(bla pi8ngulevel -.51 a (b +1.5) -5)").each{|el|
+    puts el.to_ruby.inspect
+  }
 else
   ARGV.each{|filename|
     sexpr = SExpr::SExpr.parse(File.new(filename).read())





reply via email to

[Prev in Thread] Current Thread [Next in Thread]