From 96a28a4f378b94f25dc3feba3a645f50776249b8 Mon Sep 17 00:00:00 2001 From: Nat Lasseter Date: Wed, 31 Jan 2024 14:12:16 +0000 Subject: end abbreviates sexps with nil --- lib/sexp/parse.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'lib') diff --git a/lib/sexp/parse.rb b/lib/sexp/parse.rb index adfd513..44052c2 100644 --- a/lib/sexp/parse.rb +++ b/lib/sexp/parse.rb @@ -34,6 +34,10 @@ class SExp @data = data end + def nil? + car.nil? && cdr.nil? + end + def to_s if car.nil? "()" @@ -75,13 +79,8 @@ def num_members(tokens) end def members_to_tree(members) - case members.length - when 0 - nil - when 1 - SExp.new(members[0], SExp.new) - when 2 - SExp.new(members[0], members[1]) + if members.empty? + SExp.new else SExp.new(members[0], members_to_tree(members[1..-1])) end -- cgit v1.2.1