Instance Constructors
-
new
SECDBase
()
Type Members
-
case class
ClosureValue
(pn: Name, bdy: Code, envir: Environment) extends Value with Product with Serializable
-
case class
ContValue
(s: Stack, e: Environment, c: Code, d: Dump) extends Value with Continuation with Product with Serializable
-
-
-
type
Environment
= Map[Name, Value]
-
type
Indent
= Int
-
type
Layout
= String
-
case class
PrimValue
(bdy: Code) extends Value with Product with Serializable
-
type
Stack
= List[Value]
-
type
Width
= Int
Abstract Value Members
-
def
primTable
: Map[Name, Value]
Concrete Value Members
-
def
!=
(arg0: AnyRef): Boolean
-
def
!=
(arg0: Any): Boolean
-
def
##
(): Int
-
def
==
(arg0: AnyRef): Boolean
-
def
==
(arg0: Any): Boolean
-
object
EmptyCont
extends Continuation with Product with Serializable
-
object
EmptyValue
extends Value with Product with Serializable
-
def
angles
(d: Doc): Doc
-
implicit def
anyToPrettyPrintable
(a: Any): PrettyPrintable
-
def
asInstanceOf
[T0]
: T0
-
def
backslash
: Doc
-
def
braces
(d: Doc): Doc
-
def
brackets
(d: Doc): Doc
-
def
cat
(ds: Seq[Doc]): Doc
-
implicit def
char
(c: Char): Doc
-
def
clone
(): AnyRef
-
def
colon
: Doc
-
def
comma
: Doc
-
lazy val
control
: State[Code] { def toDoc: SECDBase.this.Doc }
-
def
debug
: Boolean
-
val
defaultIndent
: Int
-
val
defaultWidth
: Int
-
def
dot
: Doc
-
def
dquote
: Doc
-
def
dquotes
(d: Doc): Doc
-
lazy val
dump
: State[Dump]
-
def
empty
: Doc
-
def
enclose
(l: Doc, d: Doc, r: Doc): Doc
-
lazy val
envir
: State[Environment] { def toDoc: SECDBase.this.Doc }
-
def
eq
(arg0: AnyRef): Boolean
-
def
equal
: Doc
-
def
equals
(arg0: Any): Boolean
-
def
evalInst
: $eq$eq$greater[Code, Unit]
-
var
execSrcPos
: Position
-
def
fillcat
(ds: Seq[Doc]): Doc
-
def
fillsep
(ds: Seq[Doc], sep: Doc): Doc
-
def
fillsep
(ds: Seq[Doc]): Doc
-
def
finalize
(): Unit
-
def
finit
: Unit
-
def
forwslash
: Doc
-
def
getClass
(): java.lang.Class[_]
-
def
group
(d: Doc): Doc
-
def
hashCode
(): Int
-
def
hcat
(ds: Seq[Doc]): Doc
-
def
hsep
(ds: Seq[Doc], sep: Doc): Doc
-
def
hsep
(ds: Seq[Doc]): Doc
-
def
init
: Unit
-
def
isInstanceOf
[T0]
: Boolean
-
def
langle
: Doc
-
def
lbrace
: Doc
-
def
lbracket
: Doc
-
def
line
: Doc
-
def
linebreak
: Doc
-
def
list
[T]
(l: List[T], prefix: String, elemToDoc: (T) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc
-
def
lparen
: Doc
-
def
lsep
(ds: Seq[Doc], sep: Doc): Doc
-
def
lsep2
(ds: Seq[Doc], sep: Doc): Doc
-
def
lterm
(ds: Seq[Doc], term: Doc): Doc
-
def
main
(): Unit
-
val
name
: String
-
def
ne
(arg0: AnyRef): Boolean
-
def
nest
(d: Doc, j: Indent): Doc
-
def
notify
(): Unit
-
def
notifyAll
(): Unit
-
implicit def
paramUpdaterToU
[T, U, V >: U]
(up: ParamUpdater[T, U]): V
-
def
parens
(d: Doc): Doc
-
def
performUpdates
: Boolean
-
def
plist
(l: List[PrettyPrintable], prefix: String, elemToDoc: (PrettyPrintable) ⇒ Doc, sep: Doc, sepfn: (Seq[Doc], Doc) ⇒ Doc): Doc
-
def
pretty
(d: Doc, w: Width): Layout
-
def
pretty
(p: PrettyPrintable): Layout
-
def
product
(p: Any): Doc
-
def
raiseException
(ex: ExceptionValue): Unit
-
def
rangle
: Doc
-
def
rbrace
: Doc
-
def
rbracket
: Doc
-
def
reset
: Unit
-
def
rparen
: Doc
-
def
run
: Unit
-
def
semi
: Doc
-
def
sep
(ds: Seq[Doc]): Doc
-
def
softbreak
: Doc
-
def
softline
: Doc
-
def
space
: Doc
-
def
spaces
(n: Int): Doc
-
def
squote
: Doc
-
def
squotes
(d: Doc): Doc
-
def
ssep
(ds: Seq[Doc], sep: Doc): Doc
-
lazy val
stack
: State[Stack] { def toDoc: SECDBase.this.Doc }
-
implicit def
stateTToT
[T, U >: T]
(t: State[T]): U
-
def
step
: Boolean
-
def
steps
: Unit
-
def
sterm
(ds: Seq[Doc], term: Doc): Doc
-
def
string
(s: String): Doc
-
def
surround
(d: Doc, b: Doc): Doc
-
def
synchronized
[T0]
(arg0: ⇒ T0): T0
-
implicit def
text
(t: String): Doc
-
def
toString
(): String
-
def
value
(v: Any): Doc
-
def
vcat
(ds: Seq[Doc]): Doc
-
def
vsep
(ds: Seq[Doc], sep: Doc): Doc
-
def
vsep
(ds: Seq[Doc]): Doc
-
def
wait
(): Unit
-
def
wait
(arg0: Long, arg1: Int): Unit
-
def
wait
(arg0: Long): Unit
Inherited from Machine
Inherited from PrettyPrinter
Inherited from PrettyPrinterBase
Inherited from AnyRef
Inherited from Any
The basic SECD machine implementation
This only implements the bare bones of an operating SECD machine. In particular it does not provide any primitive builtin functions for operating on data values such as strings and integers. You can add these using traits to implement each one in a stackable manner.