silk
Class Symbol

java.lang.Object
silk.Symbol
- All Implemented Interfaces:
- java.io.Serializable
- public class Symbol
- extends java.lang.Object
- implements java.io.Serializable
In Silk 1.0 to 1.4, symbols were implemented as Strings. In 1.5, we
add a Symbol class, with a field for the global value. This makes
global lookup faster, but limits us to only one global environment.
name
private java.lang.String name
globalValue
private java.lang.Object globalValue
- Global value is stored with each symbol.
symbolTable
public static final java.util.Hashtable symbolTable
- The symbolTable keeps a unique mapping from String name to Symbol.
BEGIN
public static final Symbol BEGIN
CAR
public static final Symbol CAR
CDR
public static final Symbol CDR
DEFINE
public static final Symbol DEFINE
IF
public static final Symbol IF
LAMBDA
public static final Symbol LAMBDA
MACRO
public static final Symbol MACRO
NEWLINE
public static final Symbol NEWLINE
NULL
public static final Symbol NULL
OR
public static final Symbol OR
QUASIQUOTE
public static final Symbol QUASIQUOTE
QUOTE
public static final Symbol QUOTE
SET
public static final Symbol SET
SPACE
public static final Symbol SPACE
UNQUOTE
public static final Symbol UNQUOTE
UNQUOTE_SPLICING
public static final Symbol UNQUOTE_SPLICING
PACKAGE
public static final Symbol PACKAGE
Symbol
private Symbol(java.lang.String name)
- Constructor. From outside the class, call Symbol.intern(name).
intern
public static Symbol intern(java.lang.String name)
- Intern a string: look up or make a symbol.
getGlobalValue
public java.lang.Object getGlobalValue()
isDefined
public boolean isDefined()
setGlobalValue
public java.lang.Object setGlobalValue(java.lang.Object newval)
toString
public java.lang.String toString()
- A symbol can be printed using its name.
We don't do escape processing.