package sexp
- Alphabetic
- By Inheritance
- sexp
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
- class DeserializationException extends RuntimeException
- implicit final class EnrichedAny[T] extends AnyVal
- implicit final class EnrichedString extends AnyVal
- class SerializationException extends RuntimeException
-
sealed abstract
class
Sexp extends AnyRef
An S-Expression is either
An S-Expression is either
1. an atom (i.e. symbol, string, number) 2. of the form
(x . y)
wherex
andy
are S-Expressions (i.e. cons)Everything else is just sugar.
- sealed trait SexpAtom extends Sexp
- final case class SexpChar(value: Char) extends Sexp with SexpAtom with Product with Serializable
- final case class SexpCons(x: Sexp, y: Sexp) extends Sexp with Product with Serializable
- type SexpData = ListMap[SexpSymbol, Sexp]
-
trait
SexpFormat[T] extends SexpReader[T] with SexpWriter[T]
Provides the S-Exp deserialization and serialization for type T.
Provides the S-Exp deserialization and serialization for type T.
- Annotations
- @implicitNotFound( "Cannot find SexpFormat for ${T}" )
- final case class SexpNumber(value: BigDecimal) extends Sexp with SexpAtom with Product with Serializable
-
trait
SexpPrettyPrinter extends SexpPrinter
The output is a non-standard interpretation of "pretty lisp" --- emacs style formatting requires counting the length of the text on the current line and indenting off that, which is not so easy when all you have is a
StringBuilder
. -
trait
SexpPrinter extends (Sexp) ⇒ String
Emacs flavoured lisp printer.
-
trait
SexpReader[T] extends AnyRef
Provides the S-Exp deserialization for type T.
Provides the S-Exp deserialization for type T.
- Annotations
- @implicitNotFound( ... )
- final case class SexpString(value: String) extends Sexp with SexpAtom with Product with Serializable
- final case class SexpSymbol(value: String) extends Sexp with SexpAtom with Product with Serializable
-
trait
SexpWriter[T] extends AnyRef
Provides the S-Exp serialization for type T.
Provides the S-Exp serialization for type T.
- Annotations
- @implicitNotFound( ... )
Value Members
- object SexpCompactPrinter extends SexpPrinter
-
object
SexpData
Sugar for (:k1 v1 :k2 v2) [keyword symbols](https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html):
Sugar for (:k1 v1 :k2 v2) [keyword symbols](https://www.gnu.org/software/emacs/manual/html_node/elisp/Symbol-Type.html):
SexpData
is defined as a type alias inpackage.scala
-
object
SexpList
Sugar for ("a" .
Sugar for ("a" . ("b" . ("c" . nil)))
- object SexpNaN extends Sexp with SexpAtom with Product with Serializable
- object SexpNegInf extends Sexp with SexpAtom with Product with Serializable
- object SexpNil extends Sexp with SexpAtom with Product with Serializable
- object SexpNumber extends Serializable
-
object
SexpParser
Parse Emacs Lisp into an
Sexp
.Parse Emacs Lisp into an
Sexp
. Other lisp variants may require tweaking, e.g. Scheme's nil, infinity, NaN, etc. - object SexpPosInf extends Sexp with SexpAtom with Product with Serializable
- object SexpPrettyPrinter extends SexpPrettyPrinter
- object SexpReader
- object SexpWriter