Module SExpressionParser
In: sexpressions.rb

Methods

parse   stringer  

Constants

Integer = integer.map{|x| x.to_i }
Float = number.map{|x| x.to_f }
Number = longest(Integer, Float)
Special = Regexp.escape('+-*/=<>?!@#$%^&:~')
Symbol = regexp(/[\w#{Special}]*[A-Za-z#{Special}][\w#{Special}]*/).map{|s| s.to_sym }
String = stringer(%q{"}, %q{"}, "n" => "\n", "t" => "\t")
List = char('(') >> lazy{Values} << char(')')
Quoted = char("'") >> lazy{Value}.map{|value| [:quote, value] }
Value = whitespace.many_ >> alt(Quoted, List, String, Symbol, Number) << whitespace.many_
Values = Value.many
Parser = Values << eof

Public Class methods

[Validate]